unix高级环境编程 例子 代码实现练习 第三章:文件I/O

本文详细介绍了Unix/Linux环境下,通过C语言进行文件I/O操作的实践,包括测试标准输入偏移量设置、创建带空洞的文件、复制标准输入到标准输出、打印文件描述符标志以及文件状态标志的管理。文中配以多个代码实例,如程序清单3-1至3-5,帮助读者深入理解相关概念。
摘要由CSDN通过智能技术生成

程序清单 3-1“ 测试能否对标准输入设置偏移量

/**
 * 程序清单 3-1“ 测试能否对标准输入设置偏移量 P51
 *
 * zy:
 * 对lseek函数加深认识。
 * 
 * 书中第一个例子/etc/motd是进入tty的一段文字,所以可以随意调整
 * 书中第二个例子表示对管道进行lseek,但是不可以的
 * 书中第三个例子,我相应的目录下没有找到该文件,我使用mkfifo创建了一个,
 * 但是对其使用我们的程序是无效的,就是什么也不会出现。所以不知道我用mkfifo创建的东西
 * 和书中是不是一个东西。
 * 
 */

#include "apue.h"
#include <stdlib.h>
#include "error.c"

int main(void) {
	if(lseek(STDIN_FILENO,0,SEEK_CUR)==-1){//必须测试其是否等于-1,因为某些设备的偏移量可以是负的
		printf("cannot seek \n ");
	}else{
		printf("seek ok\n ");
	}
	exit(0);
}


结果:
asd@asd-desktop:~/workspace/test/src$ !1029
./a.out </etc/motd 
seek ok
 asd@asd-desktop:~/workspace/test/src$ !1030
cat </etc/motd | ./a.out 
cannot seek 
 asd@asd-desktop:~/workspace/test/src$ !1034
mkfifo fifo
mkfifo: cannot crea
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值