UNIX环境高级编程第5章标准I/O库

Z2YVR$Q6$@_LDY$EZD%LG5C

使用标准IO库时,进程(或者是shell)自动打开并关联到程序运行窗口的标准输入输出流对象,为标准输入,标准输出,标准出错,这些流对象引用的文件,与不带缓冲的IO函数使用的文件描述符,它们关联的文件对是相同的,这些文件应该指的就是那些窗口,窗口在显示器上(显示器是文件),如果使用了重定向,那么所谓的文件,就是硬盘上的指定文件。也就是说,流对象(标准IO使用)与文件描述符(不带缓冲的IO使用),它们关联到相同的文件。

1YH}9X6UMI%B60(@0@)A4(W

L7()L8SSWU((4@1FGK{CLI2

程序清单5-2用fgets和fputs将标准输入复制到标准输出

 
// program 5-2 mycat/fgetsfputs.c
#include "apue.h"

int main(void)
{
    char buf[MAXLINE];

    while (fgets(buf, MAXLINE, stdin) != NULL)
    {
        if (fputs(buf, stdout) == EOF)
        {
            err_sys("output error");
        }
    }

    if (ferror(stdin))
    {
        err_sys("input error");
    }

    exit(0);
}
 
all: mycat getcputc fgetsfputs
mycat: mycat.c
	g++ -g -Wall mycat.c ../lib/libapue.a -I ../include -o mycat
getcputc: getcputc.c
	g++ -g -Wall getcputc.c ../lib/libapue.a -I ../include -o getcputc
fgetsfputs: fgetsfputs.c
	g++ -g -Wall fgetsfputs.c ../lib/libapue.a -I ../include -o fgetsfputs
clean:
	rm mycat getcputc fgetsfputs

KI4X}7DUF1@6Y$1H$PY5747

19U46]}%2GVXS@N9TGPBFGO

b17bdbe62928db8e0d6f7ff72417c2f9

原文地址:https://www.cnblogs.com/sunyongjie1984/p/4261674.html