一。文件读写
1.创建文件:
头文件:
函数:creat(char *path,int mode) mode:S_I(R|W|X)(USR|GRP|OTH) 对不同用户组的不同读写执行
2.打开文件:
文件头:
函数:open(char *path,int oflag,mode) oflag:O_RDONLY,O_WRONLY,O_RDWR, O_APPEND,O_CREATE,O_EXCL,O_RUNC
3.都取文件:
文件头:
函数:read(int fhand,void *buffer,read_size); 文件句柄,读取文件内容缓冲区,都取大小 PS:从光标处都取,使用lseek 移动光标
4. 写入文件:
文件头:
函数:write(int hand,void *buffer,write_size) ;同read
5.移动光标:
头文件:
函数:lseek(intfd,offset,whence) ;文件句柄,偏移量,从哪开始: whence预设:文件头:SEEK_SET(开头) SEEK_END(结尾) SEEK_CUR(当前)
6.关闭文件:
文件头:
函数:close(句柄) ;
7.修改文件所有人:
chown(path,uid,gid)
fchown(句柄,uid,gid)
lchown(path,uid,gid)
chown修改路径指定的文件所有人,fchown修改打开的文件的所有人,lchown修改链接的所有人。以上函数运行时需要有相关的权限否则失败返回-1 root用户是0,0
8.设置文件权限:
chmod(path,mode)
fchmod(句柄,mode)
mode:S_I(R|W|X)(USR|GRP|OTH) 对不同用户组的不同读写执行
权限蔽屏:umask(mode) 同linux命令行 umask
9获取文件状态:
stat(path,struct stat*buff)
fstat(句柄,struct stat* buff)
lstat(path,struct stat* buff)
stat结构体:
struct stat {
mode_t st_mode; //文件对应的模式,文件,目录等
ino_t st_ino; //i-node节点号
dev_t st_dev; //设备号码
dev_t st_rdev; //特殊设备号码
nlink_t st_nlink; //文件的连接数
uid_t st_uid; //文件所有者
gid_t st_gid; //文件所有者对应的组
off_t st_size; //普通文件,对应的文件字节数
time_t st_atime; //文件最后被访问的时间
time_t st_mtime; //文件内容最后被修改的时间
time_t st_ctime; //文件状态(属性)改变时间
blksize_t st_blksize; //文件内容对应的块大小
blkcnt_t st_blocks; //文件内容对应的块数量
};
10.创建目录:
函数:mkdir(path,mode) mode同文件创建的mode
11.删除目录:
函数:rmdir(path);
12.修改文件日期:
函数:utime(path,struct utimbuf);struct utimbuf
13.对目录的操作:
函数:opendir readdir closedir