linux 中 open和fopen的区别

linux 中 open和fopen的区别,第1张

open 是系统调用 返回的是文件句柄,文件的句柄是文件在文件描述副表里的索引,fopen是C的库函数,返回的是一个指向文件结构的指针。

fopen是ANSIC标准中的C语言库函数,在不同的系统中应该调用不同的内核api

linux中的系统函数是open,fopen是其封装函数

open和fopen的区别:

1、open属于低级IO,fopen是高级IO。

2、open返回一个文件描述符,fopen返回一个文件指针。

3、open无缓冲,fopen有缓冲。

4、open与 read, write 等配合使用, fopen与 fread, fwrite等配合使用。

5、fopen是在open的基础上扩充而来的,在大多数情况下,用fopen。

您好,Linux系统调用open打开的是当前工作目录下的文件。open函数是C/C++中用来打开文件的函数,它的语法如下:FILE *open(const char *filename, int mode),其中filename是要打开的文件名,mode是文件打开的模式。当mode为0时,表示以只读方式打开文件;当mode为1时,表示以读写方式打开文件;当mode为2时,表示以只写方式打开文件。当mode为3时,表示以读写方式打开文件。当mode为4时,表示以追加方式打开文件。当mode为5时,表示以读写方式打开文件。当mode为6时,表示以只读方式打开文件。当mode为7时,表示以读写方式打开文件。当mode为8时,表示以只写方式打开文件。

因此,Linux系统调用open打开的是当前工作目录下的文件,而不是其他目录下的文件。

linux 中,打开,读写,可以通过基于文件流的fopen() fread(),fwrite() ,也可以通过,基于文件标示符的不带缓存的open(),read() ,write()打开。

不知道,你到底想知道什么 ?

char buff[100]

int fd =open(file_name,O_RDONLY)

real_read=read(fd,buff,100)//从文件中读取100 字符,放到buff 中

real_write=write(fd,buff,100)//写100字符写到文件中。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7211491.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存