IO库函数
fopen()、fread()、fwrite()、fclose()、fseek()
IO函数的说明
| IO函数 | 参数说明 | 实例 |
FILE *fopen(const char *path, const char *mode); | fopen返回的是文件流指针 | FILE *fp = fopen("a.txt","a"); |
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); | void *ptr是读到数据存入的指针 | |
size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream); | void *ptr是要写入的数据指针 | |
int fclose(FILE *fp);
| 要关闭的文件流指针 | |
int fseek(FILE *stream, long offset, int whence); | offset是跳转的指针位数,where是有SEEK_SET, SEEK_CUR,SEEK_END |
C会默认打开三个文集流指针:1 stdin 2 stdout 3 stderror
系统调用函数
open ()、close()、read()、write()、lseek()
int open(const char *pathname, int flags, mode_t mode);【返回值是一个文件描述符】
1、pathname打开或者创建的目标文件
2、flags:
必选选项 | 可选选项 | ||
O_RDONLY | 只读 | O_CREAT | 文件不存在,创建 |
O_WRONLY | 只写 | O_APPEND | 追加写 |
O_RDWR | 可读可写 | O_TRUNC | 打开有内容就截断 |
|
| O_EXCL | 文件不存在创建,否则报错 |
3、mode:指定文件的权限信息(注意umask值)
理解fd 和F、FILE*这两个的关系
dup2(old_fd, new_fd);是可以复制两个文件描述信息的函数,通过文件描述信息的复制,就可以操作两个文件