
APUE习题
kingolie
。。。
展开
-
UNIX环境高级编程习题——第二章
第二章习题2.1 在2.8节中基本数据类型可以在多个文件中定义。例如,在FreeBSD 8.0中,size_t在29个不同的文件中都有定义,由于一个程序可能包含这29个不同的头文件,在ISO C 却不允许对同一个名字进行多次typedef,那么如何编写这些头文件呢?为了避免多次包含typedef语句,我们可以使用#ifndef标识#ifndef _MACHINE_TYPES_H_ #define原创 2017-05-04 10:10:23 · 578 阅读 · 0 评论 -
UNIX环境高级编程习题——第一章
第一章习题1.1在系统上验证,除了根目录外,目录.和..是不同的ls .ls ..ls /.ls /..2.分析图1-6程序的输出,说明进程ID为852和853的进程发生了什么情况#include "apue.h"int main(void){ printf("hello world from process ID %ld\n",(long)getpid()); e原创 2017-05-03 11:29:00 · 1532 阅读 · 0 评论 -
UNIX环境高级编程习题——第三章
第三章习题3.1 当读/写磁盘文件时,本章中描述的函数确实是不带缓冲机制的吗?请说明原因:1、本章中描述的read和write函数都是系统调用,这两个函数都是在内核中进行的,所以是不带缓冲的I/O函数。而带有缓冲机制的函数是以内存空间作为缓冲区,避免不当操作降低多写性能。3.2 编写一个与3.12节中dup2功能相同的函数,要求不掉用fcntl函数,并且要有正确的出错处理:这里写代码片3.3 假设一原创 2017-05-16 09:16:42 · 2470 阅读 · 4 评论 -
UNIX环境高级编程习题——第四章
4.1 用stat函数替换图4-3程序中的lstat函数,如若命令行参数之一是符号链接,会发生什么变化?会输出符号链接所指向文件的文件类型。4.2 如果文件模式创建屏蔽字是777(八进制),结果会怎样?用shell的umask命令验证该结果如果创建的是目录,那么该目录的用户、组和其他人均无法访问目录,在目录下创建或删除文件,无法搜索目录下的文件。///如果创建的是文件,那么该文件的用户、组原创 2017-08-22 11:25:41 · 1668 阅读 · 0 评论 -
UNIX环境高级编程习题——第七章
7.1 在Intel x86系统上,使用Linux,如果执行一个输出“hello world”的程序但不调用exit或return,则程序的返回代码13(用shell检查),解释其原因:原因:printf的返回值变为main函数的返回值,不同的系统上编译此类程序由不同的终止码。7.2 图7-3中的printf函数的结果何时才被真正输出?当程序处于交互运行方式时,标准输出通常处于行缓冲方式,所以原创 2017-08-27 07:37:59 · 1653 阅读 · 0 评论 -
UNIX环境高级编程习题——第五章
5.1 用setvbuf实现setbuf/************************************************************************* > File Name: test12_1.c > Author: King > Mail: arturiapendragon_1@163.com > Created Tim原创 2017-08-23 20:17:41 · 892 阅读 · 0 评论 -
UNIX环境高级编程习题——第八章
8.1 在图8-3 程序中,如果exit调用替代_exit调用,那么可能会使标准输出关闭,使printf返回-1.修改该程序以验证你所使用的系统上是否会产生这种错误。如果并非如此,你怎样处理才能得到类似结果呢?为了方针子进程终止时关闭标准输出的行为,在调用exit之前加入下列代码行:fclose(stdout);/*******************************原创 2017-08-28 08:52:55 · 1712 阅读 · 0 评论 -
UNIX环境高级编程习题——第六章
6.1 如果系统使用阴影文件,那么如何取得加密口令获取超级用户权限,并与加密口令文件中对应用户的加密口令字段来比较。6.2 假设你由超级用户权限,并且系统使用了阴影口令,重新考虑上一道习题。/************************************************************************* > File Name: test6_2.c原创 2017-08-24 10:24:28 · 645 阅读 · 0 评论