ǶÈëʽLinuxÓ¦ÓóÌÐò¿ª·¢ÆÚÄ©¿¼ÊÔÌâ¿â¼°´ð°¸ ÁªÏµ¿Í·þ

·¢²¼Ê±¼ä : ÐÇÆÚÎå ÎÄÕÂǶÈëʽLinuxÓ¦ÓóÌÐò¿ª·¢ÆÚÄ©¿¼ÊÔÌâ¿â¼°´ð°¸¸üÐÂÍê±Ï¿ªÊ¼ÔĶÁf14c3fb0ce2f0066f53322b3

set by %d\\n\ getchar(); } } } A¡¢lock_set(fd, F_RDLCK) B¡¢lock_set(fd, F_WRLCK) C¡¢lock_set(fd, O_RDONLY) D¡¢lock_set(fd, O_WRONLY) 1

ÏÂÃæµÄ³ÌÐò´ò¿ªÒ»¸öÎļþ£¬Ð´Èë×Ö·û´®²¢¶Á³ö¡£ÇëÑ¡³öÓ¦ÌîдÔÚ¿Õ°×´¦µÄÑ¡Ïî¡£ int main() {

FILE

*stream;

char

s[3]={'a','b','c'};

stream=fopen(\

i=fwrite( __________ ); printf(\ fclose(stream); } A¡¢s,sizeof(char),nmemb,stream B¡¢s,char,nmemb,fd

C¡¢s,sizeof(char),nmemb,FILE D¡¢s,char,nmemb,FILE 4

ÏÂÃæµÄ³ÌÐò»ñµÃµ±Ç°½ø³ÌµÄPID¡£ÇëÑ¡³öÓ¦ÌîдÔÚ¿Õ°×´¦µÄÑ¡Ïî¡£ int main() { printf(\A¡¢getpid() B¡¢getppid() C¡¢open(fd, pid) D¡¢fopen(stream, pid) 1

ÏÂÃæµÄ³ÌÐòÅжÏforkº¯Êý·µ»ØÖµµÄÇé¿ö¡£ÇëÑ¡³öÓ¦ÌîдÔÚ¿Õ°×´¦µÄÑ¡Ïî¡£ int main(void) { pid_t result; __________; if(result == -1) { perror(\ exit; } else if(result == 0) { printf(\return value is %d\\nIn child process!!\\nMy PID is%d\\n\ } else { printf(\return value is %d\\nIn father process!!\\nMy PID is%d\\n\ } } A¡¢result = fork() B¡¢result = fork(-1) C¡¢result = fork(0) D¡¢result = fork(1) 1

ÏÂÃæµÄ³ÌÐòÅжÏforkº¯Êý·µ»ØÖµµÄÇé¿ö¡£ÇëÑ¡³öÓ¦ÌîдÔÚ¿Õ°×´¦µÄÑ¡Ïî¡£ int main(void) { pid_t result; result = fork() ; if(result == -1) { perror(\ exit; } else if( __________ ) { printf(\return value is %d\\n In father process!!\\nMy PID is%d\\n\ } else { printf(\return value is %d\\n In child process!!\\nMy PID is%d\\n\ } } A¡¢result < 0 B¡¢result == 0 C¡¢result > 0 D¡¢result !== 0

4

ÏÂÃæµÄ³ÌÐòʹÓÃÎļþÃûµÄ·½Ê½À´²éÕÒ¿ÉÖ´ÐÐÎļþ£¬Í¬Ê±Ê¹ÓòÎÊýÁбíµÄ·½Ê½¡£ÇëÑ¡³öÓ¦ÌîдÔÚ¿Õ°×´¦µÄÑ¡Ïî¡£ int main() { if(fork()==0) { /*´Ë´¦Ï൱ÓÚµ÷Óá°ps -ef¡±ÃüÁî*/ if( __________ (\ perror(\ } } A¡¢execl B¡¢execle C¡¢execlp D¡¢execve 3

ÏÂÃæµÄ³ÌÐòʹÓÃʹÓÃÍêÕûµÄÎļþĿ¼À´²éÕÒ¶ÔÓ¦µÄ¿ÉÖ´ÐÐÎļþ£¬Í¬Ê±Ê¹ÓòÎÊýÁбíµÄ·½Ê½¡£ÇëÑ¡³öÓ¦ÌîдÔÚ¿Õ°×´¦µÄÑ¡Ïî¡£ int main() { if(fork()==0) { /*×¢Òâ´Ë´¦ÒѸø³öpsÃüÁîËùÔÚµÄÍêÕû·¾¶*/ if( __________ (\ perror(\ } } A¡¢execl B¡¢execle C¡¢execlp D¡¢execve 1

ÏÂÃæµÄ³ÌÐò½«»·¾³±äÁ¿Ìí¼Óµ½Ð½¨µÄ×Ó½ø³ÌÖÐÈ¥£¬ÕâÀïµÄ¡°env¡±ÊDz鿴µ±Ç°½ø³Ì»·¾³±äÁ¿µÄÃüÁîʹÓÃʹÓÃÍêÕûµÄÎļþĿ¼À´²éÕÒ¶ÔÓ¦µÄ¿ÉÖ´ÐÐÎļþ£¬Í¬Ê±Ê¹ÓòÎÊýÁбíµÄ·½Ê½¡£ÇëÑ¡³öÓ¦ÌîдÔÚ¿Õ°×´¦µÄÑ¡Ïî¡£ ÃüÁîµÄÍêÕû·¾¶*/ perror(\ } } A¡¢execl B¡¢execle C¡¢execlp D¡¢execve 2

ÏÂÃæµÄ³ÌÐò½«»·¾³±äÁ¿Ìí¼Óµ½Ð½¨µÄ×Ó½ø³ÌÖÐÈ¥£¬ÕâÀïµÄ¡°env¡±ÊDz鿴µ±Ç°½ø³Ì»·¾³±äÁ¿µÄÃüÁîʹÓÃʹÓÃÍêÕûµÄÎļþĿ¼À´²éÕÒ¶ÔÓ¦µÄ¿ÉÖ´ÐÐÎļþ¡£ÇëÑ¡³öÓ¦ÌîдÔÚ¿Õ°×´¦µÄÑ¡Ïî¡£ int main() { /*ÃüÁî²ÎÊýÁÐ±í£¬±ØÐëÒÔNULL½áβ*/ char *arg[]={\ char *envp[]={\ if(fork()==0) { if( __________ (\ perror(\ } } A¡¢execl B¡¢execle C¡¢execlp D¡¢execve 4

if(

__________

int

main()

{

char

*envp[]={\ if(fork()==0) { /*×¢Òâ´Ë´¦ÒѸø³öenv

(\

ÏÂÃæµÄ³ÌÐòΪ·þÎñÆ÷¶ËÓ¦ÓóÌÐò£¬Ê×ÏȽ¨Á¢Æðsocket£¬È»ºóµ÷Óñ¾µØ¶Ë¿Ú½øÐа󶨣¬½Ó×Å¿ªÊ¼Óë¿Í»§¶Ë½¨Á¢ÁªÏµ£¬²¢½ÓÊÕ¿Í»§¶Ë·¢Ë͵ÄÏûÏ¢¡£ÇëÑ¡³öÓ¦ÌîдÔÚ¿Õ°×´¦µÄÑ¡Ïî¡£ #define SERVPORT 3333 #define BACKLOG 10 #define MAX_CONNECTED_NO 10 #define MAXDATASIZE 5 int main() { struct sockaddr_in server_sockaddr,client_sockaddr; int sin_size,recvbytes; int sockfd,client_fd; char buf[MAXDATASIZE]; /*½¨Á¢socketÁ¬½Ó*/ if( __________ ) { perror(\ exit(1); } printf(\success!,sockfd=%d\\n\ /*ÉèÖÃsockaddr_in ½á¹¹ÌåÖÐÏà¹Ø²ÎÊý*/ server_sockaddr.sin_family=AF_INET;

server_sockaddr.sin_port=htons(SERVPORT);

server_sockaddr.sin_addr.s_addr=INADDR_ANY; bzero(&(server_sockaddr.sin_zero),8); /*°ó¶¨º¯Êýbind*/ if(bind(sockfd,(struct sockaddr *)&server_sockaddr,sizeof(struct sockaddr))== -1) { perror(\ exit(1); } printf(\success!\\n\ /*µ÷ÓÃlistenº¯Êý*/ if(listen(sockfd,BACKLOG)== -1) { perror(\ exit(1); } printf(\ /*µ÷ÓÃif((client_fd=accept(sockfd,(struct

acceptsockaddr

º¯Êý£¬µÈ´ý¿Í»§¶ËµÄÁ¬½Ó*/ *)&client_sockaddr,&sin_size))==

-1)

{

-1)

{ perror(\ exit(1); } /*µ÷ÓÃrecvº¯Êý½ÓÊÕ¿Í»§¶ËµÄÇëÇó*/ if((recvbytes=recv(client_fd,buf,MAXDATASIZE,0))== 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 1

ÏÂÃæµÄ³ÌÐòΪ¿Í»§Æ÷¶ËÓ¦ÓóÌÐò£¬¿Í»§¶ËÔÚ½¨Á¢Æð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,\enter the server's hostname!\\n\ exit(1); } /*µØÖ·½âÎöº¯Êý*/ if((host=gethostbyname(argv[1]))==NULL) { perror(\ exit(1); } /*´´½¨socket*/ if( __________ ) { perror(\ exit(1); } /*ÉèÖÃsockaddr_in

½á¹¹ÌåÖÐÏà¹Ø²ÎÊý*/

serv_addr.sin_family=AF_INET;

in_addr

serv_addr.sin_port=htons(SERVPORT);

serv_addr.sin_addr=*((struct

perror(\

exit(1); } printf(\ close(sockfd); }

*)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,\-1) { 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 2

ÏÂÃæµÄ³ÌÐòÊ×ÏÈн¨Ò»×Ó½ø³Ì£¬È»ºóÈÃÆä×Ó½ø³ÌÔÝÍ£5s¡£½ÓÏÂÀ´¶ÔÔ­Óеĸ¸½ø³ÌʹÓÃ×è

Èûº¯Êý£¬²¢Ê¹ÓòÎÊýʹ¸Ã¸¸½ø³Ì²»»á×èÈû¡£ÈôÓÐ×Ó½ø³ÌÍ˳ö£¬Ôò×èÈûº¯Êý·µ»Ø×Ó½ø³ÌºÅ£»ÈôûÓÐ×Ó½ø³ÌÍ˳ö£¬Ôò×èÈûº¯Êý·µ»Ø0£¬²¢ÇÒ¸¸½ø³Ìÿ¸ôÒ»ÃëÑ­»·ÅжÏÒ»´Î¡£ÇëÑ¡³öÓ¦ÌîдÔÚ¿Õ°×´¦µÄÑ¡Ïî¡£ int main() { pid_t pc,pr; __________; if(pc<0) printf(\\\n\ /*×Ó½ø³Ì*/ else if(pc==0) { /*×Ó½ø³ÌÔÝÍ£5s*/ sleep(5); /*×Ó½ø³ÌÕý³£Í˳ö*/ exit(0); } /*¸¸½ø³Ì*/ else { /*Ñ­»·²âÊÔ×Ó½ø³ÌÊÇ·ñÍ˳ö*/ do { /*µ÷ÓÃwaitpid£¬ÇÒ¸¸½ø³Ì²»×èÈû*/ pr=waitpid(pc,NULL,WNOHANG); /*Èô×Ó½ø³Ì»¹Î´Í˳ö£¬Ôò¸¸½ø³ÌÔÝÍ£1s*/ if(pr==0) { printf(\not exited\\n\ sleep(1); } } while(pr==0); /*Èô·¢ÏÖ×Ó½ø³ÌÍ˳ö£¬´òÓ¡³öÏàÓ¦Çé¿ö*/ if(pr==pc) printf(\child %d\\n\ else printf(\error occured.\\n\ } } A¡¢pc=fork() B¡¢pc=open(pr) C¡¢pc=pr D¡¢pr=pc 1

ÏÂÃæµÄ³ÌÐòÊ×ÏÈн¨Ò»×Ó½ø³Ì£¬È»ºóÈÃÆä×Ó½ø³ÌÔÝÍ£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 { /*µ÷ÓÃ×èÈûº¯Êý£¬ÇÒ¸¸½ø³Ì²»×èÈû*/ __________; /*Èô×Ó½ø³Ì»¹Î´Í˳ö£¬Ôò¸¸½ø³ÌÔÝÍ£1s*/ if(pr==0) { printf(\child process has not exited\\n\ 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) 4

ÏÂÃæµÄ³ÌÐò½¨Á¢Ò»¸öÊØ»¤½ø³Ì£¬¸ÃÊØ»¤½ø³Ìÿ¸ô10sÔÚ/tmp/dameon.logÖÐдÈëÒ»¸ö×Ö·û´®¡£ÇëÑ¡³öÓ¦ÌîдÔÚ¿Õ°×´¦µÄÑ¡Ïî¡£ #define MAXFILE 65535 int main() { pid_t pc; int i,fd,len; char *buf=\is a Dameon\\n\ len =strlen(buf); /*µÚÒ»²½*/ __________; if(pc<0) { printf(\\\n\ exit(1); } else if(pc>0) exit(0); /*µÚ¶þ²½*/ setsid(); /*µÚÈý²½*/ chdir(\ /*µÚËIJ½*/ umask(0); /*µÚÎå²½*/ for(i=0;i

¹¤

×÷

*/

while(1)

if((fd=open(\

{ perror(\ exit(1); } write(fd, buf, len+1); close(fd); sleep(10); } } A¡¢pc=fork() B¡¢fd=open(pc) C¡¢pc=fd