C语言中的输入输出函数(3)

六.标准I/O常量
1.在stdio.h中定义了数量众多的与输入和输出有关常量。其中,EOF所选择的实际值比一个字符要多几位,这是为了避免二进制被错误地解释为EOF。

2.一个程序同时最多能打开多少个文件呢?

他可以保证能够同时打开至少FOPEN_MAX个文件。这个常量包括了三个标准流,它的值至少是8。

3.常量FILENAME_MAX是一个整型值,用于提示一个字符数组应该多大以便容纳编译器所支持的最长合法文件名。


七.临时文件

1.在程序中,我们会使用一个文件来临时保存数据。当程序结束时,这个文件便被删除,因为它所包含的数据不再使用。

2.tmpfile()函数

1>函数功能:创建一个文件,当文件被关闭或程序终止时这个文件便自动删除。该文件以wb+模式打开,这使它可用于二进制和文本数据。

2>如果临时文件必须以其他模式打开或者由一个程序打开但由另一个程序读取,就不适合用tmpfile函数创建。在这些情况下,必须使用fopen函数,而且当结果文件不再需要时必须使用remove函数显示地删除。

3>临时文件的名字可以用tmpnam函数创建,它的原型如下:

char  *tmpnam(char  *name);

如果传递给函数的参数为NULL,那么该函数便返回一个指向静态数组的指针,该数组包含了被创建的文件名。否则,参数便假定是一个指定长度至少为L_tmpnam的字符数组的指针。在这种情况下,文件名在这个数组中创建,返回值就是这个参数。无论哪种情况,这个被创建的文件名保证不会与已经存在的文件名同名。只要调用次数不超过TMP_MAX次,tmpnam函数每次调用时都能产生一个新的不同名字。

八.文件操纵函数
1.有两个函数用于操纵文件但不执行任何输入/输出操作。

1>函数原型,如果执行成功,这两个函数都返回零值。如果失败,它们都返回非零值。

int  remove(char  const *filename);

int  rename(char  const *oldname,char  const *newname);

2>remove函数删除一个指定的文件。如果当remove被调用时文件处于被打开状态,其结果则取决于编译器。

3>rename函数用于改变一个文件的名字,从oldname改为newname。如果已经有一个名为newname的文件存在,其结果取决于编译器。如果这个函数失败,文件任然可以用原来的名字进行访问。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/ppwpd.html