1.linux 文件操作

C语言linux下的文件操作(1) 文件操作: 欢迎加入QQ:498903810 一起交流、讨论知识,里面有大佬,也有小白,天下码农一家亲,大家一起讨论进步。 1、静态文件(Inode) 硬盘中的文件,就是静态文件。每一个文件都是以多个块和多个扇区组成的,一般情况,一个扇区(512字节),64个扇区组成一个块。 在硬盘中,对文件管理有一个特定的规则(文件管理表 + 真实的内容):文件管理表,这个表中是以 阅读详情

(1)判断文件是否可以进行某种操作

intaccess(const char *pathname,int mode)

mode可是是R_OK文件可以读,W_OK文件可以写,X_OK文件可以执行,F_OK文件存在.这几个或组合,当测试成功时 ,函数返回0,否则如果有一个条件不符时,返回-1.

如果要获取其他属性时可以使用函数stat或者fstat

#include<sys/stat.h>;

#include<unistd.h>;

intstat(const char *file_name,struct stat *buf);

intfstat(int filedes,struct stat *buf);

structstat {

dev_tst_dev; /* 设备 */

ino_tst_ino; /* 节点 */

mode_tst_mode; /* 模式 */

nlink_tst_nlink; /* 硬连接 */

uid_tst_uid; /* 用户 ID*/

gid_tst_gid; /* 组 ID*/

dev_tst_rdev; /* 设备类型 */

off_tst_off; /* 文件字节数 */

unsignedlong st_blksize; /* 块大小 */

unsignedlong st_blocks; /* 块数 */

time_tst_atime; /* 最后一次访问时间*/

time_tst_mtime; /* 最后一次修改时间*/

time_tst_ctime; /* 最后一次改变时间(指属性)

};

stat用来判断没有打开的文件,fstat用来判断打开的文件。

S_ISLNK(st_mode):是否是一个连接.S_ISREG是否是一个常规文件.S_ISDIR是否是一个目 录 S_ISCHR是否是一个字符设备.S_ISBLK是否是一个块设备 S_ISFIFO是否 是一个 FIFO文 件.S_ISSOCK是否是一个 SOCKET文件.

(2)目录操作

intmkdir(const char *path,mode_t mode);

DIR*opendir(const char *path);

structdirent *readdir(DIR *dir);

voidrewinddir(DIR *dir);

off_ttelldir(DIR *dir);

voidseekdir(DIR *dir,off_t off);

intclosedir(DIR *dir);

structdirent {

longd_ino;

off_td_off;

unsignedshort d_reclen;

chard_name[NAME_MAX+1]; /* 文件名称*/

mkdir很容易就是我们创建一个目录,opendir打开一个目录为以后读做准备.readdir读一 个打开的目录.rewinddir是用来重读目录的和.closedir是关闭 一个目录.

实例:

#include<unistd.h>

#include<stdio.h>

#include<errno.h>

#include<sys/types.h>

#include<sys/stat.h>

#include<dirent.h>

#include<time.h>

staticint get_file_size_time(const char * filename){

structstat statbuf;

if(stat(filename,&statbuf)==-1){

printf("Getstat on %s\n ERROR",

filename);

return-1;

}

if(S_ISDIR(statbuf.st_mode))

return1;

if(S_ISREG(statbuf.st_mode)){

printf("%ssize:%ld bytes\tmodified at %s",

filename,statbuf.st_size,ctime(&statbuf.st_mtime));

printf("-------------------------------------\n");

intr_ok;

intw_ok;

intx_ok;

intf_ok;

r_ok=access(filename,R_OK);

w_ok=access(filename,W_OK);

x_ok=access(filename,X_OK);

f_ok=access(filename,F_OK);

printf("判断权限(-1代表否0代表是):读操作:%d,写操作:%d,可执行:%d,存在:%d\n",

r_ok,w_ok,x_ok,f_ok);


return0;

}

}


intmain(int argc,char **argv){

DIR* dirp;

structdirent * direntp;

intstats;

if(argc!=2){

printf("usage:%sfilename\n\a",argv[0]);

return1;

}

stats=get_file_size_time(argv[1]);

if(stats==0||stats==-1)

return0;

if((dirp=opendir(argv[1]))==NULL){

printf("opendir %s Error \n",

argv[1]);

return0;

}

while((direntp=readdir(dirp))!=NULL){

if(get_file_size_time(direntp->d_name)==-1)

break;

}

closedir(dirp);

return0;




}


linux文件操作学习1 由于实验室的项目需要开始学习linux,为了更好的学习和掌握linux的一些基本操作以及顺便做个备忘录,时间久了也可以看看自己的学习成果。 学习linux应该先抛开windows的C、D、E...盘的划分,在linux系统的一切皆是文件,熟悉一下linux的目录结构以及该目录的功能可以对linux的每个目录有个直观的了解: /bin:        系统的必须命令,如:cp,cat,l 阅读详情

相关推荐

1.Linux文件操作指令及用户权限

Linux常用文件操作指令及用户配置权限命令记录

棉花糖老丫 1112

LINUX复习_1_文件& I/O操作

概念说明 1:linux中一切都是文件  文件是linux对大多数系统资源访问的接口  常见的文件类型:普通文件,设备文件,目录文件,管道文件,套接字,链接文件  普通文件:文本文件(行结构 存储),二进制文件(可执行文件,图像,声音) 2: / 文件系统的根 cd /即可到根目录 3:“.”代表该文件 “..”代表该目录的父目录 4:挂载 挂载的意义...

哈喽(o゚▽゚)o哈龍 391

Linux文件操作命令(1)

Linux文件操作命令 打开搜索,找到文件命令终端即可输入文件操作命令 Linux的根目录为“/’ bin(binary):可执行文件(所有带bin的都是可执行文件) 普通用户使用的命令 sbin(supervisor binary):管理员使用的命令 cdrom:关于光盘 device:设备,Linux下所有的设备都以 /dev ...

weixin_46435614的博客 679

linux解析文件的主函数,Linux C库函数-文件权限控制篇

access(判断是否具有存取文件的权限)相关函数stat,open,chmod,chown,setuid,setgid表头文件#include定义函数int access(const char * pathname,int mode);函数说明access()会检查是否可以读/写某一已存在的文件。参数mode有几种情况组合,R_OK,W_OK,X_OK 和F_OK。R_OK,W_OK与X_OK用...

weixin_31067223的博客 435

Ubuntu22.04系统安装及配置

下载Ubuntu22.04系统镜像(下载地址:链接:https://caiyun.139.com/m/i?提取码:fLRJ),结合rufus和系统镜像制作USB启动盘,在物理机服务器上通过USB启动盘进行安装;或通过Esxi虚拟化平台创建虚拟机,然后在虚拟机中使用系统镜像进行安装。

cheagoun的博客 8万+

matplotlib三维画图之观察博弈论混合策略下纳什均衡点

参考链接: 博弈论入门20讲之第16讲-猜谜游戏-散户如何赢庄家 游戏背景: 我的期望是: 你的期望是: 使用Python的matplotlib画图: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() ax = Axes3D(fig) X = np.linspace(0, 1, 100) Y = np.linspace(0, 1,

敲代码的小风 1259

Linux系统编程 -文件和目录操作函数

dup() 和 dup2()是两个非常有用的系统调用,都是用来复制一个文件的描述符,使新的文件描述符也标识旧的文件描述符所标识的文件。这个过程类似于现实生活中的配钥匙,钥匙相当于文件描述符,锁相当于文件,本来一个钥匙开一把锁,相当于,一个文件描述符对应一个文件,现在,我们去配钥匙,通过旧的钥匙复制了一把新的钥匙,这样的话,旧的钥匙和新的钥匙都能开启这把锁。

choice~的博客 1731

MAC 青花瓷(Charles)爪机HTTPS 抓包

前段时间跟之前的产品小姐姐聊天,小姐姐说开发让她抓包帮忙看下数据,然而自己又不会,那就来写一篇简易版的教程 冲冲冲! 手上只有mac电脑跟iPhone手机,只做苹果手机的抓包,android7.0以上版本也没法通过正常的抓htts的包,让安卓开发装个后门吧,不是安卓开发并不知道是啥,连上USB之后访问chrome://inspect/#devices就能很简单的抓包 一、准备工具等 青花瓷...

Promise的博客 1617

Linux 文件操作(四)—— 判断文件是否存在(access) + 删除文件(unlink) + 创建文件夹(mkdir)

Linux 文件操作(四)—— 判断文件是否存在(access) + 删除文件(unlink) + 创建文件夹(mkdir)

challenglistic的博客 1721

如何在windows电脑上搭建Linux环境(手把手教安装虚拟机软件和使用云服务器)

手把手教学如何搭建Linux环境

纪宁的博客 1万+

CentOS校园网Web Portal认证自动化实战

Web Portal认证是一种基于HTTP重定向与表单提交的强制网络准入机制,其原理是网关劫持未认证流量并跳转至登录页,验证通过后通过Cookie维持会话授权。该技术广泛应用于高校、机场、酒店等场景,核心价值在于细粒度访问控制与用户身份绑定。典型应用包括Linux命令行环境下的校园网接入、无GUI设备的自动联网、以及实验室集群的集中认证管理。本文聚焦CentOS系统,深入解析curl、cookie持久化、动态表单参数提取等关键技术环节,提供可调试、可复现、可工程化的完整认证流水线。

weixin_30522983的博客 265

Linux access函数讲解

函数: #include<unistd.h> int access(const char* pathname, int mode); 参数介绍: pathname 是文件的路径名+文件名 mode:指定access的作用,取值如下 F_OK 值为0,判断文件是否存在 X_OK 值为1,判断对文件是可执行权限 W_OK 值为2,判断对文件是否有写权限 R_OK 值为4,判断对文件是否有读权限 注:后三种可以使用或“|”的方式,一起使用,如W_OK|R_...

modi000的博客 8144

STM32F407硬件IIC驱动OLED避坑实录:从‘不显示’到‘稳定刷屏’的完整调试过程

本文详细记录了使用STM32F407硬件IIC驱动OLED屏幕的完整调试过程,从初始的‘不显示’问题到最终实现‘稳定刷屏’。文章涵盖了硬件接线、I2C外设配置、常见问题排查及性能优化技巧,特别针对STM32标准库开发中的难点提供了实用解决方案,是嵌入式开发者驱动OLED屏幕的实用指南。

weixin_30315723的博客 303

Linux的文件操作1

1、基本知识 (1) 目录树形式组织文件 –bin:可执行文件 –dev:存放设备文件接口 –etc:存放于系统设置和管理相关文件 –home:存放用户专属目录 –root:系统管理员专用目录 (2) Linux只有一个目录树,Windows有多个目录树(磁盘) Linux使用/,Windows使用 (3) cd:改变工作目录 cd ~:回到之前目录;cd …:回到上一级目录 (4) 绝对路径absolute pathname:出发点从根目录开始,/home/joe/doc/memos/m1 相对路径re

Yua_H的博客 756

《QGIS空间数据处理与高级制图》【目录】

《QGIS空间数据处理与高级制图》是一本面向GIS技术人员和学生的进阶手册,重点提升数据处理效率和专业制图标准化水平。全书涵盖空间数据预处理、矢量编辑、栅格处理、坐标系统应用和符号化设计等核心内容。书中详细介绍了批量数据转换、拓扑检查、遥感影像处理、自定义坐标系创建等实用技能,并提供了模型构建器和PyQGIS脚本实现自动化操作。通过大量实战案例和问题排查指南,帮助读者从基础使用进阶到专业应用,适合测绘、规划、环保等行业的GIS从业者参考使用。

LuckyHanMo的博客 374

全志F1C100S/F1C200S学习笔记(1)——基础简介及资料

资料: 荔枝派资料下载站 荔枝派github 荔枝派中文论坛 荔枝派DIY-github资料 荔枝派Nano 全流程指南 芒果派 坑网

丨晋丨 1万+

1 Linux io文件操作总结

1. 对于文件操作,虽然都是通过函数调用的方式实现,却还是能分为两类:系统调用和库函数。 2. 在Linux中,几乎一切都可以看做是文件 。 这就意味着,普通程序完全可以像使用文件(普通定义)那样使用磁盘文件、串行口、打印机和其他设备 3. 库函数调用最终也是通过系统调用实现的。可认为库函数调用是对系统调出于效率考虑而做出的优化。 系统调用实际上就是指最底层的

紫云的博客 665

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Linux的基础文件操作1

Linux的基础文件操作1Linux系统文件基础的操作1浏览文件目录和创建LL指令与LS指令的区别创建目录与文件的指令 Linux系统文件基础的操作1 继上周学习了Linux系统的安装。本周我们对于Linux系统的文件基础的操作进行了学习, 在此做出记录和总结。 浏览文件目录和创建 LL指令与LS指令的区别 LL与 LS在Linux系统中都是查看当前目录文件的指令;但是相较于LL,LS的查看更为简洁。 [root@tan /]# ls bin dev home lib64 mnt proc r

TAN1656282016的博客 625

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

linux文件操作-1

linux下的七种文件 - 文件 d 目录 l 符号链接 s 套接字 b 块设备 c 字符设备 p 管道 伪文件是不占用磁盘空间的 常用的系统调用 umask 1.文件权限问题 如果open 给定一个文件权限 与 umask掩码 运算之后在赋予权限 当然 你也可以修改umask掩码 一个简单的demo 这个api非常简单 我们这里就不做演示了 来讨论一下lseek函数 1.这个函数是用来设置文件的文件指针位置的 大家都知道 一个文件只有一个文件指针,当你去写入一段数据...

qq_44065088的博客 279

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

linux编程——文件操作1

文件的创建 这里先来看Linux系统调用方式的文件编程 首先,文件是如何产生的?我们可以使用creat函数来创建一个文件。在终端中man creat #include #include #include int open(const char *pathname, int flags); int open(cons

Thinkcortex的博客 657

1.linux文件操作

1、文件目录结构,从上到下,树状结构: /(根目录) /home(家目录,存放所有用户的信息,每个用户都有各自的文件名,如:/ubuntu) /ubuntu (/ubuntu用户的目录,可以有多个,各自有各自的文件与对应的权限,这里只创建一个) /Desktop /Download /Documents 等等 (这一级的文件是/ubuntu下的文件,/ubuntu用户有权限访问与修改,其...

M_WuFM的博客 301

Linux文件操作1

3/23 操作系统的五大功能模块是:处理器管理、存储器管理、设备管理、文件管理和作业管理。 文件编程 进程线程编程 TCP/UDP Linux文件:文件本身包含的数据(打开文件可以看到文件信息) 2.文件属性(元数据:文件的访问权限,文件大小,创建时间等) 查看文件属性 ls -l 目录也是文件之一(当前) . :当前目录 …:上一级目录 /var: Cache:应用程序的缓存文件 Lib:应用程序的信息、数据 Local:usr/local中程序的信息 Lock:锁文件 Log:日志文件 Opt:

m0_48507061的博客 185

linux文件怎么操作,linux文件操作学习1

由于实验室的项目需要开始学习linux,为了更好的学习和掌握linux的一些基本操作以及顺便做个备忘录,时间久了也可以看看自己的学习成果。学习linux应该先抛开windows的C、D、E...盘的划分,在linux系统的一切皆是文件,熟悉一下linux的目录结构以及该目录的功能可以对linux的每个目录有个直观的了解linux的目录结构: /bin: 系统的必须命令,如:cp,ca...

weixin_42333411的博客 257

linux文件操作(1)

1.文件编程概述 1.我们需要关心的是如何用代码操作文件,实现文件创建,打开,编辑等自动化执行? windows下如何手动修改文档,比如写一个word文档: 打开/创建文档 -> 编辑文档 -> 保存文档 -> 关闭文档。 Linux下: 通过鼠标进行文档操作和windows一样。(手动完成) 计算机如何帮助我们自动化完成以上操作呢? 操作系统提供了一系列的API,如Linux系统: 打开 open 读写 read/write 光标移动 lseek 关

qq_49783511的博客 300

linux下的文件操作(1)

1.打开文件open 返回的是文件描述符,不带缓冲fopen 返回的是FILE *,带缓冲根据参数不同,可以选择不同的打开方式,这是文件操作的第1步2.读文件readfread这2个函数仅仅是按字节读取文件如果要按一定的规则对文件读取,则需要另外的函数fscanf例子1:    如果输入数据的格式是这样的,第一个数是数据的个数,后面每一行是一组数据:      2      1      2   

qdzhoujian的专栏 792

1.Linux文件操作

本文介绍了Linux系统中常用的文件操作函数,包括系统调用(open/close/read/write/lseek)和标准I/O函数(fopen/fclose/fread/fwrite/fseek)。重点讲解了open函数的参数使用(路径、标志位、权限模式)和错误处理,以及文件描述符的概念。同时对比了系统调用和标准I/O函数的特点,标准I/O具有更好的可移植性但效率略低。文章还详细说明了文件操作中的光标定位(lseek/fseek)、缓存机制和常见操作模式(读/写/追加等),并提供了完整的代码示例展示如何组

duejvwan的博客 313
上一篇: linux 消息队列
下一篇: 共享内存:、
王俊杰MSE
博客等级 码龄15年 14粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值