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) //查询当前文件描述符的状态标志,然后在其基础上增加非阻塞标志,并最终更新文件描述符的属性,使其变为非阻塞模式。 |