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