unix重定向

直接把书上代码码出来了:
#include <stdio.h>

int main(){
	int c=0;
	while((c =getc(stdin))!= EOF){
		if(putc(c,stdout)==EOF){
			printf("output error.");
		}
	}
	int error = ferror(stdin);
	printf("ferror :%d.\n",error);
	if(error){
		printf("input error.");
	}
}


EOF表示end of file,这里的file可以是file也可以是stdin.

ferror 用法:

int ferror ( FILE * stream );
Check error indicator
Checks if the  error indicator associated with  stream is set, returning a value different from zero if it is.

This indicator is generally set by a previous operation on the  stream that failed, and is cleared by a call to  clearerr, rewind or  freopen.意思是检测流,返回非0就是错误了。我们可以测试看一下:

$ ./output
we re
we re
ferror :0.

ok,就是这样。最近每天至少学一点unix编程吧,正确一个月内把这本书啃完。

你可能感兴趣的:(unix重定向)