}
A、(sockfd = socket(AF_INET,SOCK_STREAM,0))== -1选项> B、(sockfd = socket(AF_INET,SOCK_STREAM,0))== 0选项> C、(sockfd = socket(AF_INET,SOCK_STREAM,-1))== -1选项> D、(sockfd = socket(AF_INET,SOCK_STREAM,-1))== 0选项> <题目>下面的程序为客户器端应用程序,客户端在建立起socket之后调用connect函数来建立连接。请选出应填写在空白处的选项。 #define SERVPORT 3333 #define MAXDATASIZE 100 main(int argc,char *argv[]) { int sockfd,sendbytes; char buf[MAXDATASIZE]; struct hostent *host; struct sockaddr_in serv_addr; if(argc < 2) { fprintf(stderr,\ exit(1); } /*地址解析函数*/ if((host=gethostbyname(argv[1]))==NULL) { perror(\ exit(1); } /*创建socket*/ if( ____B______ ) { perror(\ exit(1); } /*设置sockaddr_in 结构体中相关参数*/ serv_addr.sin_family=AF_INET; serv_addr.sin_port=htons(SERVPORT); serv_addr.sin_addr=*((struct in_addr *)host->h_addr); bzero(&(serv_addr.sin_zero),8); /*调用connect函数主动发起对服务器端的连接*/ if(connect(sockfd,(struct sockaddr *)&serv_addr,sizeof(struct sockaddr))== -1) { perror(\ exit(1); } /*发送消息给服务器端*/
if((sendbytes=send(sockfd,\ { perror(\ exit(1); } close(sockfd); }
A、(sockfd = socket(AF_INET,SOCK_STREAM,0))== 0选项> B、(sockfd = socket(AF_INET,SOCK_STREAM,0))== -1选项> C、(sockfd = socket(AF_INET,SOCK_STREAM,-1))== 0选项> D、(sockfd = socket(AF_INET,SOCK_STREAM,-1))== -1选项>
<题目>下面的程序首先新建一子进程,然后让其子进程暂停5s。接下来对原有的父进程使用阻塞函数,并使用参数使该父进程不会阻塞。若有子进程退出,则阻塞函数返回子进程号;若没有子进程退出,则阻塞函数返回0,并且父进程每隔一秒循环判断一次。请选出应填写在空白处的选项。 int main() { pid_t pc,pr; _____A_____; if(pc<0) printf(\ /*子进程*/ else if(pc==0) { /*子进程暂停5s*/ sleep(5); /*子进程正常退出*/ exit(0); } /*父进程*/ else { /*循环测试子进程是否退出*/ do { /*调用waitpid,且父进程不阻塞*/ pr=waitpid(pc,NULL,WNOHANG); /*若子进程还未退出,则父进程暂停1s*/ if(pr==0) { printf(\ sleep(1); } }
while(pr==0); /*若发现子进程退出,打印出相应情况*/ if(pr==pc) printf(\ else printf(\ } }
A、pc=fork()选项> B、pc=open(pr)选项> C、pc=pr 选项> D、pr=pc 选项>
<题目>下面的程序首先新建一子进程,然后让其子进程暂停5s。接下来对原有的父进程使用阻塞函数,并使用参数使该父进程不会阻塞。若有子进程退出,则阻塞函数返回子进程号;若没有子进程退出,则阻塞函数返回0,并且父进程每隔一秒循环判断一次。请选出应填写在空白处的选项。 int main() { pid_t pc,pr; pc=fork() if(pc<0) printf(\ /*子进程*/ else if(pc==0) { /*子进程暂停5s*/ sleep(5); /*子进程正常退出*/ exit(0); } /*父进程*/ else { /*循环测试子进程是否退出*/ do { /*调用阻塞函数,且父进程不阻塞*/ ____D______; /*若子进程还未退出,则父进程暂停1s*/ if(pr==0) { printf(\ sleep(1); } } while(pr==0); /*若发现子进程退出,打印出相应情况*/
if(pr==pc) printf(\ else printf(\ } }
A、pc=wait(pc,NULL,WNOHANG)选项> B、pc=waitpid(pc,NULL,WNOHANG)选项> C、pr=wait(pc,NULL,WNOHANG)选项> D、pr=waitpid(pc,NULL,WNOHANG)选项> <题目>下面的程序建立一个守护进程,该守护进程每隔10s在/tmp/dameon.log中写入一个字符串。请选出应填写在空白处的选项。 #define MAXFILE 65535 int main() { pid_t pc; int i,fd,len; char *buf=\ len =strlen(buf); /*第一步*/ ____A______; if(pc<0) { printf(\ exit(1); } else if(pc>0) exit(0); /*第二步*/ setsid(); /*第三步*/ chdir(\ /*第四步*/ umask(0); /*第五步*/ for(i=0;i<MAXFILE;i++) close(i); /*这时创建完守护进程,以下开始正式进入守护进程工作*/ while(1) { if((fd=open(\Y|O_APPEND,0600))<0) { perror(\ exit(1); } write(fd, buf, len+1);
close(fd); sleep(10); } }
A、pc=fork()选项> B、fd=open(pc)选项> C、pc=fd 选项> D、pc=open(buf) 选项> <题目>下面的程序建立一个守护进程,该守护进程每隔10s在/tmp/dameon.log中写入一个字符串。请选出应填写在空白处的选项。 #define MAXFILE 65535 int main() { pid_t pc; int i,fd,len; char *buf=\ len =strlen(buf); /*第一步*/ pc=fork(); if(pc<0) { printf(\ exit(1); } else if(pc>0) exit(0); /*第二步*/ setsid(); /*第三步*/ chdir(\ /*第四步*/ umask(0); /*第五步*/ ____D______ close(i); /*守护进程创建完成,以下开始正式进入守护进程工作*/ while(1) { if((fd=open(\Y|O_APPEND,0600))<0) { perror(\ exit(1); } write(fd, buf, len+1); close(fd); sleep(10); }