man手册
- 通过man手册可以获取详细的Linux操作命令共有8章,查询使用
man ls
即可查询ls的相应命令,也可以使用相应的章节man 2 open
查询第二章的open如何使用。
常用文件IO函数
功能 | 函数 | 描述 | 实例 |
---|---|---|---|
打开文件 | int open(const char *pathname, int flags); | 打开一个文件,返回文件描述符。-1 则打开失败,可以使用perror(const char *) 来输出错误。pathname 是文件路径,flags 指定打开模式(如O_RDONLY 只读、O_WRONLY 只写、O_RDWR 读写、O_CREAT 文件不存在则创建`也可以使用按位或同时使用不同的权限。 | int copy=open("a.text",O_WRONLY | O_CREAT,0664); //只写若不存在则创建,若创建则文件的rwx权限为664,创建必须加权限。后期使用 chmod 664 a.text 改变权限也可 |
关闭文件 | int close(int fd); | 关闭一个文件描述符 | close(copy); |
读文件 | ssize_t read(int fd, void *buf, size_t count); | 从文件描述符fd指向的文件中读取最多count字节到缓冲区buf中。返回值>0 则为实际读取到的字节数,=0 表示已经读完,-1 则表示失败 | read(fd,buff,sizeof(buff)) |
写文件 | ssize_t write(int fd, const void *buf, size_t count); | write:将缓冲区buf中的最多count字节数据写入文件描述符fd指向的文件。成功返回写入的字节数,失败返回-1 | write(copy,buff,len); |
复制文件描述符、设置/获取文件的状态 | int fcntl(int fd, int cmd, long arg); | fd:要操作的文件描述符 cmd:指定要执行的操作类型 F_DUPFD :复制文件描述符。F_GETFD :获取文件描述符的标志。F_SETFD :设置文件描述符的标志,常用于设置close-on-exec标志。F_GETFL :获取文件状态标志,如文件是否为非阻塞模式等。F_SETFL :设置文件状态标志。F_GETLK, F_SETLK, F_SETLKW :与文件锁操作相关,分别用于获取、设置或设置带有阻塞的文件锁。 | fcntl(fd, F_SETFL, fcntl(fd,F_GETFL,0)| O_NONBLOCK) //查询当前文件描述符的状态标志,然后在其基础上增加非阻塞标志,并最终更新文件描述符的属性,使其变为非阻塞模式。 |