[基础IO] 上 open fd | FILE*的区别

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是读到数据存入的指针

参照 http://www.cplusplus.com

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);是可以复制两个文件描述信息的函数,通过文件描述信息的复制,就可以操作两个文件

 

 


版权声明:本文为weixin_44007713原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。