下列3个函数打开一个标准I/O流。

#include <stdio.h>

FILE *fopen(const char *restrict pathname, const char *restrict type);
FILE *freopen(const char *restrict pathname, const char *restrict type, FILE *restrict fp);
FILE *fdopen(int fd, const char *type);

这3个函数区别如下。

  1. fopen 函数打开路径名为pathname的一个指定的文件。
  2. freopen 函数在一个制定的流上打开一个指定的文件,如若该流已经打开,则先关闭该流。若该流已经定向,则使用freopen清除该定向。此函数一般用于将一个指定的文件打开为一个预定义的流:标准输入,标准输出或标准错误。
  3. fdopen函数取一个已有的文件描述符(我们可能从open、dup、dup2、fcntl、pip、socket、socketpair或accept函数得到此文件描述符),并使一个标准的I/O流与该描述符相结合。此函数常用与创建管道和网络通信通道函数返回的描述符。因为这些特殊类型的文件不能用标准I/O函数fopen打开,所以我们必须先调用设备专用函数以获得一个文件描述符,然后用fdopen使一个标准I/O流与该描述符相结合。

results matching ""

    No results matching ""