本文共 2676 字,大约阅读时间需要 8 分钟。
1. 打开一个文件:open
头文件 #include <fcntl.h>
函数原型 int fd = open(char * name, int how)
参数 name 文件名
how O_RDONLY, O_WRONLY, O_RDWR
返回值 -1 遇到错误
int 成功返回
2. 把数据读取到缓冲区:read
头文件 #include <unistd.h>
函数原型 ssize_t num_read = read(int fd, void *buf, size_t qty)
参数 fd 文件描述符
buf 用来存放数据的目的缓冲区
qty 要读取的字节数
返回值 -1 遇到错误
num_read 成功返回
3. 关闭文件:close
头文件 #include <unistd.h>
函数原型 int result = close(fd)
参数 fd 文件描述符
返回值 -1 遇到错误
0 成功关闭
4. 创建/重写一个文件:open
头文件 #include <fcntl.h>
函数原型 int fd = open(char * name, int how)
参数 name 文件名
how O_RDONLY, O_WRONLY, O_RDWR
返回值 -1 遇到错误
int 成功返回
5. 将内存中的数据写入文件:write
头文件 #include <unistd.h>
函数原型 ssize_t num_written = write(int fd, void *buf, size_t amt)
参数 fd 文件描述符
buf 内存数据
amt 要写的字节数
返回值 -1 遇到错误
num_written 成功返回
6. 使指针指向文件中的指定位置:lseek
头文件 #include <sys/type.h>
#include <unistd.h>
函数原型 off_t oldpos = lseek(int fd, off_t dist, int base)
参数 fd 文件描述符
dist 移动的距离
base SEEK_SET 文件开始位置
SEEK_CUR 当前位置
SEEK_END 文件结尾
返回值 -1 遇到错误
oldpos 指针变化前的位置
7. 得到文件的属性:stat
头文件 #include <sys/stat.h>
函数原型 int result = stat(char *fname, struct stat *bufp)
参数 fname 文件名
bufp 指向buffer的指针
返回值 -1 遇到错误
0 成功返回
struct stat 结构详见:
8. 修改文件的许可权限和特殊属性:chmod
头文件 #include <sys/types.h>
#include <sys/stat.h>
函数原型 int result = chmod(char *path, mode_t mode)
参数 path 文件名
mode 新的许可权限和特殊属性
返回值 -1 遇到错误
0 成功返回
9. 修改文件的所有者和组:chown
头文件 #include <unistd.h>
函数原型 int chown(char *path, uid_t owner, gid_t group)
参数 path 文件名
owner 新的文件所有者ID
group 新的组ID
返回值 -1 遇到错误
0 成功返回
10. 修改文件最后修改时间和最后访问时间:utime
头文件 #include <sys/time.h>
#include <utime.h>
#include <sys/types.h>
函数原型 int utime(char *path, struct utimbuf *newtimes)
参数 path 文件名
newtimes 指向结构变量utimbuf的指针
返回值 -1 遇见错误
0 成功返回
11. 修改文件名或移动文件位置:rename
头文件 #include <stdio.h>
函数原型 int result = rename(char *old, char *new)
参数 old 原来的文件名或目录名
new 新的文件名或目录名
返回值 -1 遇到错误
0 成功返回
12. 创建目录:mkdir
头文件 #include <sys/stat.h>
#include <sys/types.h>
函数原型 int result = mkdir(char *pathname, mode_t mode)
参数 pathname 新目录名
mode 权限的掩码
返回值 -1 遇到错误
0 成功创建
13.删除一个目录,此目录必须为空:rmdir
头文件 #include <unistd.h>
函数原型 int result = rmdir(const char *path);
参数 path 目录名
返回值 -1 遇到错误0 成功创建
14.删除一个连接(删除目录中的一条记录和记录对应的文件,相当于rm命令):unilnk
头文件 #include <unistd.h>
函数原型 int result = unlink(const char *path)
参数 path 需要删除的连接名
返回值 -1 遇到问题
0 成功删除
15.创建一个文件新连接(相当于ln命令):link
头文件 #include <unistd.h>
函数原型 int result = link(const char *orig, const char *new)
参数 orig 原始连接名字
new 新建连接名字
返回值 -1 遇到错误
0 成功创建
16.重命名或删除一个连接:rename
头文件 #include <unistd.h>
函数原型 int result = rename(const char *from, const char *to)
参数 from 原始连接名字
to 新建连接名字
返回值 -1 遇到错误
0 成功返回
17.改变所调用进程的当前目录(相当于cd命令):chdir
头文件 #include <unistd.h>
函数原型 int result = chdir(const char *path);
参数 path 要到的目录
返回值 -1 遇到错误
0 成功改变
18. 打开,读取目录等操作,详见:
转载地址:http://pavli.baihongyu.com/