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字符写到文件中。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)