14. 对于如下C语言程序 int main() { pid_t pid; int x=1; pid=fork(); if(pid==0) printf("I am the child process, x=%d\n", ++x); else printf("I am the parent process, x=%d\n". --x); } 在UNIX操作系统中正确编译链接后,其正确的运行结果是______。
A.I am the child process, x=2 I am the parent proeess, x=0
B.I am the child process, x=2
C.I am the parent process, x=0
D.I am the parent process, x=2 I am the child process, x=0
A B C D
A
[解析] 计算机程序设计中的fork()函数的返回值:若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记;否则,出错返回-1。运行后的输出为I am the child process, x=2 I am the parent process, x=0。故本题答案选择A选项。
[解析] ICMP(Internet Control Message Protocol,互联网控制报文协议)作为IP层协议,最基本的功能是提供差错报告,都采用路由器到源主机的模式,所有的差错信息都需要向源主机报告。ICMP报文的最终目的地总是主机上的IP软件,ICMP软件作为IP软件的一个模块存在。ICMP差错报文具有以下几个特点:①差错报告不享受特别优先权和可靠性,作为一般数据传输。在传输过程中,它完全有可能丢失、损坏或被丢弃。②ICMP差错报告数据中除包含故障IP数据报报头外,还包含故障IP数据报数据区的64比特数据。③ICMP差错报告是伴随着抛弃出错IP数据报而产生的。故本题答案选择BCDE选项。