-
Notifications
You must be signed in to change notification settings - Fork 54
ANSI_IO
果冻虾仁 edited this page Aug 22, 2017
·
4 revisions
分为:
- ASCII文件(文本文件,字符文件)
- 二进制文件
区别:
比如一个数字-1000,在文本文件中分别存储五个字符的二进制码。而在二进制文件中直接存储该数字的二进制值。
文本文件更直观(可以直接用cat命令查看,或用任何编辑器打开观看),但二进制文件更节约存储空间。
//在/usr/inclue/stdio.h中
typedef _IO_FILE FILE;
//在/usr/inclue/libio.h中
struct _IO_FILE{
char* _IO_read_ptr; /* Current read pointer */
char* _IO_read_end; /* End of get area. */
char* _IO_read_base; /* Start of putback+get area. */
char* _IO_write_base; /* Start of put area. */
char* _IO_write_ptr; /* Current put pointer. */
char* _IO_write_end; /* End of put area. */
char* _IO_buf_base; /* Start of reserve area. */
char* _IO_buf_end; /* End of reserve area. *
...
int _filene; /*文件描述符*/
};文件操作结束后,都应该:
- 关闭打开的文件,fclose(fp);
- 文件指针置空,fp=NULL;
Talk is cheap, show me the code!
C语言API包含部分标准C的API、POSIX标准的系统编程API(一些Linux独有的系统API会单独注明)。
大部分头文件源码在/usr/include目录下。
因为涉及到大量的POSIX编程。所以最好下载POSIX函数的man手册。
apt-get install manpages-posix
apt-get install manpages-posix-dev
默认安装了manpages-dev,所以不装POSIX的man手册是可以查看绝大部分API的。
但是不装的话,有些API是不能看到的,比如posix_spawn函数。
yum install man-pages.noarch
关于目录
左侧的目录并非以函数为索引依据,主要是以系统的man手册页面为索引依据。
比如exec里面包含6个函数、pipe里面包含pipe()和pipe2()两个函数,但是它们都是属于一个man页面中。