apue程序清单3-1

12 篇文章 0 订阅
3 篇文章 0 订阅

这个程序虽小,小中见大嘛。主要是理解重定向符号和管道的概念。(八过,概念的理解是建立在代码的基础上)

#include "apue.h"

int main(void)
{
     if (lseek(STDIN_FILENO, 0, SEEK_CUR) == -1)
        printf("cannot seek\n");
     else
        printf("seek ok\n");
     exit(0);
}
把这个程序编译成 a.out

按照我的方式运行程序:

$./a.out < /etc/motd(其实这里/etc/motd就只是一个普通文件,你用其他文件也是可以的)

seek ok

$cat < /etc/motd | ./a.out

cannot seek

为什么同样是读/etc/motd却出现了前者可以改变文件偏移量,后者不行呢?

重定向其实通过dup2来实现的,结合列子来解释,就是关闭不把0只想终端,而是指向/etc/motd。而,/etc/motd是可以改变文件偏移量的。

管道,其实通过pipe来实现的,










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值