标签类目:fopen

fopen和open的具体区别

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

2、fopen的实现要调用open, 关键看你想返回什么了, FILE指针还是描述符?

3、32位环境下,编译加“-D_FILE_OFFSET_BITS=64” 要在open里加O_LARGEFILE标记

  1. static int ext2_open_file (struct inode * inode, struct file * filp)
  2. {
  3. if (!(filp->f_flags & O_LARGEFILE) &&
  4.        inode->i_size > 0x7FFFFFFFLL)
  5. return -EFBIG;
  6. return 0;
  7. }

0x7FFFFFFF就是2G-1。 看一下这个逻辑, 就知道open时必须制定O_LARGEFILE.

继续阅读 »

C中的文件操作

分类:C/C++文件使用方式        意 义
“rt”      只读打开一个文本文件,只允许读数据
“wt”      只写打开或建立一个文本文件,只允许写数据
“at”      追加打开一个文本文件,并在文件末尾写数据
“rb”      只读打开一个二进制文件,只允许读数据
“wb”       只写打开或建立一个二进制文件,只允许写数据
“ab”       追加打开一个二进制文件,并在文件末尾写数据
“rt+”      读写打开一个文本文件,允许读和写
“wt+”      读写打开或建立一个文本文件,允许读写
“at+”      读写打开一个文本文件,允许读,或在文件末追加数 据
“rb+”      读写打开一个二进制文件,允许读和写
“wb+”      读写打开或建立一个二进制文件,允许读和写
“ab+”      读写打开一个二进制文件,允许读,或在文件末追加数据
继续阅读 »


返回顶部