UNIX高级编程习题答案详解:第1章-i节点与限制符

需积分: 11 0 下载量 152 浏览量 更新于2024-07-26 收藏 598KB PDF 举报
本资源是《UNIX环境高级编程》第二十二章的部分习题答案。章节涉及的主题包括: 1.1 i节点数与目录操作: - 使用`ls -li`命令,可以查看文件或目录的i节点数目(i节点是UNIX/Linux系统中表示文件和目录的基本数据结构,包含了文件权限、所有者、大小等信息)。在给出的例子中,通过这个命令观察到了`/etc`目录及其子目录的i节点数量。 1.2 多任务系统: - 作为多任务操作系统,UNIX允许同时执行多个进程,这些进程可以在同一时刻并行运行,不会相互干扰。 1.3 函数参数的const属性: - 在C语言中,`const`关键字用于声明常量,防止函数参数被意外修改。`perro`r函数的`ptr`参数如果使用`const`,则不允许修改指针所指向的字符串。而`sterror`参数由于是整数类型且作为值传递,其值不会被修改,所以无需使用`const`。 1.4 错误处理与errno: - 错误码(errno)在程序执行过程中经常被用来记录错误状态。例如,`flush`, `printf`, 和 `vprintf` 函数可能会影响errno的值。若未正确保存errno的值,可能导致错误信息不准确。在过去的程序中,常见的错误信息如“Not a typewriter”可能就是错误处理不当的结果。 5.4 标准I/O流与终端设备: - 标准输入输出库(stdio.h)会根据标准输入输出流是否指向终端设备来调整缓存行为。`isatty()`函数用于检测这一点,如果不是终端设备,可能会设置errno为`EPIPE`(管道/套接字已关闭),导致错误。 程序C-1展示了`errno`与`printf`之间如何交互,通过`grep BSD`可以看到程序执行的结果。 这些习题旨在加深理解和实践对UNIX环境高级编程的概念和技术,如文件系统、错误处理机制以及C语言编程中的细节。学习者可以通过解答这些问题,增强在实际开发中处理UNIX环境问题的能力。