一。文件读写
1.创建文件:
头文件: <sys/types.h> <sys/stat.h> <fcntl.h>
函数:creat(char *path,int mode) mode:S_I(R|W|X)(USR|GRP|OTH) 对不同用户组的不同读写执行
2.打开文件:
文件头: <sys/types.h> <sys/stat.t> <fcntl.h>
函数:open(char *path,int oflag,mode) oflag:O_RDONLY,O_WRONLY,O_RDWR, O_APPEND,O_CREATE,O_EXCL,O_RUNC
3.都取文件:
文件头:<unistd.h>
函数:read(int fhand,void *buffer,read_size); 文件句柄,读取文件内容缓冲区,都取大小 PS:从光标处都取,使用lseek 移动光标
4. 写入文件:
文件头:<unistd.h>
函数:write(int hand,void *buffer,write_size) ;同read
5.移动光标:
头文件:<unistd.h>
函数:lseek(intfd,offset,whence) ;文件句柄,偏移量,从哪开始: whence预设:文件头:SEEK_SET(开头) SEEK_END(结尾) SEEK_CUR(当前)
6.关闭文件:
文件头:<unistd.h>
函数: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结构体:<sys/stat.h>
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