man手册
- 通过man手册可以获取详细的Linux操作命令共有8章,查询使用
man ls即可查询ls的相应命令,也可以使用相应的章节man 2 open查询第二章的open如何使用。
常用文件IO函数
| 功能 | 函数 | 描述 | 实例 |
|---|---|---|---|
| 打开文件 | int open(const char *pathname, int flags); | 打开一个文件,返回文件描述符。-1则打开失败,可以使用perror来输出错误。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) //查询当前文件描述符的状态标志,然后在其基础上增加非阻塞标志,并最终更新文件描述符的属性,使其变为非阻塞模式。 |