cat < /etc/motd | ./a.out和./a.out < /etc/motd有什么区别

int main(void) 

if(lseek(STDIN_FILENO,0,SEEK_CUR)==-1) 
printf("can't seek\n"); 
ele 
printf("seek ok"); 
return 0; 

cat < /etc/motd | ./a.out和./a.out < /etc/motd有什么区别啊 

3
4
5
6
7
8
9
10
11
12
13
cat < /etc/motd | ./a.out
  
# 通过 I/O 重定向,将文件作为 cat 的标准输入,由 cat 输出
# 再通过管道作为 a.out 的输入
# a.out 的输入是管道,这个没法 seek
  
  
./a.out < /etc/motd
  
# 通过 I/O 重定向,将文件作为 a.out 的标准输入
# STDIN_FILENO 现在对应的是一个文件,可以 seek

你可能感兴趣的:(UNIX)