资源描述:
《Linux高级编程笔试题答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、高级编程笔试题答案一、选择题1.在网络字节序中,所谓”小端”(littleendian)说法正确的是(B)A.高字节数据存放在低地址处,低字节数据存放在高地址处B.低字节位数据存放在内存低地址处,高字节位数据存放在内存高地址处C.和编译器相关D.上述答案都不正确2.C语言中,系统自动打开的文件是(D)A. 二进制文件B.随机文件C.非缓冲文件D.设备文件3.TCP使用(B)进行流量控制。A.3次握手法B.窗口控制机制C.自动重发机制D.端口机制4.TCP/IP层IP协议的服务是(C)A.可靠服务B.有确认的服
2、务C.无连接数据报D.以上都不对5.对于一个没有设置任何套接口选项的阻塞套接口,调用recv接收对方的数据,对方发送数据前突然断电,下列哪种情况将会发生(A)A.recv永远不会返回B.recv立刻返回-1C.recv立刻返回0D.recv在等待很长一段时间后返回-16.下列哪些关于套接口选项函数的说法是正确的(C)A.SO_DONTLINGER选项是让TCP套接口不对数据进行缓存,调用send函数后立刻将数据发送出去;B.调用SO_RCVBUF和SO_SNDBUF调整TCP窗口的大小;C.SO_REUSEA
3、DDR选项允许套接口绑定在一个已经在使用的地址上;D.SO_MAX_MSG_SIZE选项获取每次调用TCP套接口send时,所能发送的最大字节数;二、问答题1.fork和vfork的区别?vfork用于创建一个新进程,而该进程的目的是exec一个新程序。vfork与fork一样都创建一个子进程,但他并不把父进程地址空间完全复制到子进程中,因为子进程通常都会调用exec或(_exit),于是也就不会访问该地址空间。vfork与fork的另一个区别是vfork保证子进程先运行,在它调用exec或_exit之后父进
4、程才可能被调度运行。vfork使用如下例:#include#include#include#includeintglobvar=6;/*externalvariableininitializeddata*/intmain(void){intvar;/*automaticvariableonthestack*/pid_tpid;var=88;printf("beforevfork");/*wedon’tflushstdio*
5、/if((pid=vfork())<0){perror("vforkerror");}elseif(pid==0){/*child*/globvar++;/*modifyparent’svariables*/var++;_exit(0);/*childterminates*/}/*parentcontinueshere*/printf("pid=%ld,glob=%d,var=%d",(long)getpid(),globvar,var);exit(0);}1.excel协议族有哪些,举例函数原型?ext
6、ernchar**environ;intexecl(constchar*path,constchar*arg,...);intexeclp(constchar*file,constchar*arg,...);intexecle(constchar*path,constchar*arg,...,char*constenvp[]);intexecv(constchar*path,char*constargv[]);intexecvp(constchar*file,char*constargv[]);intexec
7、vpe(constchar*file,char*constargv[],char*constenvp[]);2.创建线程、进程的函数是什么?fork、vfork、pthread_create3.线程间临界资源怎么保护?条件变量的使用?互斥锁、信号量条件变量是线程中的东西,就是等待某一条件的发生,和信号一样。具体的用法可参见百度百科文章:http://baike.baidu.com/view/4025952.htm?fr=aladdin4.编译有线程的文件要加什么参数?-lpthread5.线程与进程的区别?线
8、程是指进程内的一个执行单元,也是进程内的可调度实体。与进程的区别:a)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间;a)资源拥有:进程是资源分配和拥有的单位,同一个进程内的线程共享进程的资源;b)线程是处理器调度的基本单位,但进程不是;c)二者均可并发执行。1.多进程和多线程的区别,分别在什么情景下用?根据实际情况来判断,哪个更加合适就是哪个