《UNIXLinux程序设计教程》一2.10 思考与练习

本文探讨了UNIX系统中文件操作的基本概念和技术细节,包括文件打开的实质、不同类型的文件描述符及流的区别,以及多种文件读写操作的方式。此外,还讨论了危险函数的使用,并通过实例对比了fgets()和gets()函数的行为。

2.10 思考与练习

  1. 打开文件的实质是什么?
  2. 从应用的角度看,UNIX系统中程序与文件建立连接有几种机制?流与文件描述字有什么区别?
  3. 什么是文件位置?它起什么作用?
  4. 系统为每一个进程自动打开的输入输出流有哪些?它们对应的名字是什么?
  5. 写“r”方式打开的文件会发生什么情况?读“w”方式打开的文件呢?建议你编写一个这样的程序试试。
  6. 按读写数据的粒度分,有几类流输入输出函数?
  7. 为什么说gets()是危险的函数?
  8. 程序2-3说明了fgets()和gets()的不同。运行该程序,分别回答“y”和“n”并输入长度不同的字符串查看运行结果。
  9. 什么是读回退?回退的字符会真正回退到文件中吗?调用ungetc()做读回退时,是否一定回退刚读出的那个字符?
  10. 设某个文件含n个记录,文件的第一个字(4字节)给出记录的总个数n,随后的n个字给出各个记录的长度(字节数),剩余部分则由各个记录组成。编写一个根据文件指针和记录编号(从1开始编号)读取第k个记录的函数。
  11. 在64位的系统中,如下代码
  12. int lint = 857349200661370;

printf("lint=%i, lint=%lin", lint, lint);
为什么会打印出下面不同的结果?
lint=713935738,lint=857349200661370

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值