linux waitº¯Êý½âÎö
½ø³ÌÒ»µ©µ÷ÓÃÁËwait£¬¾ÍÁ¢¼´×èÈû×Ô¼º£¬ÓÉwait×Ô¶¯·ÖÎöÊÇ·ñµ±Ç°½ø³ÌµÄij¸ö×Ó½ø³ÌÒѾÍ˳ö£¬Èç¹ûÈÃËüÕÒµ½ÁËÕâÑùÒ»¸öÒѾ±ä³É½©Ê¬µÄ×Ó½ø³Ì£¬wait ¾Í»áÊÕ¼¯Õâ¸ö×Ó½ø³ÌµÄÐÅÏ¢£¬ ²¢°ÑËü³¹µ×Ïú»Ùºó·µ»Ø£»Èç¹ûûÓÐÕÒµ½ÕâÑùÒ»¸ö×Ó½ø³Ì£¬wait¾Í»áÒ»Ö±×èÈûÔÚÕâÀֱµ½ÓÐÒ»¸ö³öÏÖΪֹ¡£
wait£¨µÈ´ý×Ó½ø³ÌÖжϻò½áÊø£©
Ïà¹Øº¯Êý waitpid£¬fork
±íÍ·Îļþ
#include<sys/types.h>
#include<sys/wait.h>
¶¨Ò庯Êý pid_t wait (int * status);
º¯Êý˵Ã÷
wait£¨£©»áÔÝʱֹͣĿǰ½ø³ÌµÄÖ´ÐУ¬Ö±µ½ÓÐÐźÅÀ´µ½»ò×Ó½ø³Ì½á
Êø¡£Èç¹ûÔÚµ÷ÓÃwait£¨£©Ê±×Ó½ø³ÌÒѾ½áÊø£¬Ôòwait£¨£©»áÁ¢¼´·µ
»Ø×Ó½ø³Ì½áÊø×´Ì¬Öµ¡£×Ó½ø³ÌµÄ½áÊø×´Ì¬Öµ»áÓɲÎÊýstatus ·µ»Ø£¬
¶ø×Ó½ø³ÌµÄ½ø³Ìʶ±ðÂëÒ²»áÒ»¿ì·µ»Ø¡£Èç¹û²»ÔÚÒâ½áÊø×´Ì¬Öµ£¬Ôò
²ÎÊýstatus ¿ÉÒÔÉè³ÉNULL¡£×Ó½ø³ÌµÄ½áÊø×´Ì¬ÖµÇë²Î¿¼waitpid£¨£©¡£
·µ»ØÖµ
Èç¹ûÖ´Ðгɹ¦Ôò·µ»Ø×Ó½ø³Ìʶ±ðÂ루PID£©£¬Èç¹ûÓдíÎó·¢ÉúÔò·µ»Ø
-1¡£Ê§°ÜÔÒò´æÓÚerrno ÖС£
¸½¼Ó˵Ã÷
·¶Àý Ò»
#include<stdlib.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/wait.h>
int main()
{
pid_t pid;
int status,i;
if(fork()= =0){
printf(“This is the child process .pid =%d\n”,getpid());
exit(5);
}else{
sleep(1);
printf(“This is the parent process ,wait for child...\n”;
pid=wait(&status);
i=WEXITSTATUS(status);
printf(“child’s pid =%d .exit status=%d\n”,pid,i);
}
}
Ö´ÐÐ
This is the child process.pid=1501
This is the parent process .wait for child...
child’s pid =1501,exit status =5
·¶Àý ¶þ
#include<iostream>
#include<unistd.h>
#include<sys/wait.h>
using namespace std;
int main(void)
{
pid_t pid;
pid =fork();
if (pid<0)
exit(0);
else if (pid == 0)
{
Ïà¹ØÎĵµ£º
ÔÚLinux²Ù×÷ϵͳÖУ¬ÓÐÒ»¸öϵͳÈí¼þ°ü£¬ËüµÄ¹¦ÄÜÀàËÆÓÚWindowsÀïÃæµÄ“Ìí¼Ó/ɾ³ý³ÌÐò”£¬µ«Êǹ¦ÄÜÓֱȓÌí¼Ó/ɾ³ý³ÌÐò”Ç¿ºÜ¶à£¬Ëü¾ÍÊÇRed Hat Package Manager(¼ò³ÆRPM)¡£´Ë¹¤¾ß°ü×îÏÈÊÇÓÉRed Hat¹«Ë¾ÍƳöµÄ£¬ºóÀ´±»ÆäËûLinux¿ª·¢ÉÌËù½èÓá£ÓÉÓÚËüΪLinuxʹÓÃÕßʡȥÁ˺ܶàʱ¼ä£¬ËùÒÔ±»¹ã·ºÓ¦ÓÃÓÚÔÚLin ......
½ñÌ콫¸ÃÊémisc-modules²¿·ÖµÄjiq.c´úÂë×öÁËЩÐ޸ģ¬ÒÔ±£Ö¤Õâ·Ý´úÂëÔÚUBUNTU 9.10 £¦ Linux 2.6.31µÄ»·¾³ÏÂÔËÐС£
¼Ç¼һÏÂÖ÷ÒªµÄÐÞ¸ÄλÖãº
1.config.h
ÐÂÄÚºËÖÐʹÓÃÁËautoconf.h´úÌæconfig.h
2.¹¤×÷¶ÓÁÐ
ÔÚеÄÄÚºËÖÐΪÁ˱ÜÃâ·ÇÑӳٵŤ×÷¶ÓÁÐÖÐtimerµÄ³É±¾£¬½«¹¤×÷¶ÓÁÐÖеÄtimer°þÀë³öÀ´¡£Í¬Ê±ÓÖ¹¹ÔìÁËÑÓ³Ù¹¤×÷¶ÓÁÐ ......
1¡¢ÒýÑÔ
ÔÚlinuxϵͳÏ£¬Èç¹ûÄãÏÂÔØ²¢°²×°ÁËÓ¦ÓóÌÐò£¬ºÜÓпÉÄÜÔÚ¼üÈëËüµÄÃû³ÆÊ±³öÏÖ“command not found”µÄÌáʾÄÚÈÝ¡£Èç¹ûÿ´Î¶¼µ½°²×°Ä¿±êÎļþ¼ÐÄÚ£¬ÕÒµ½¿ÉÖ´ÐÐÎļþÀ´½øÐвÙ×÷¾ÍÌ«·±ËöÁË¡£ÕâÉæ¼°µ½»·¾³±äÁ¿PATHµÄÉèÖÃÎÊÌ⣬¶øPATHµÄÉèÖÃÒ²ÊÇÔÚlinux϶¨ÖÆ»·¾³±äÁ¿µÄÒ»¸ö×é³É²¿·Ö¡£±¾ÎÄ» ......
1¡¢ÓÃÐéÄâ»ú¼Ówindows¿ª·¢linux³ÌÐò
2¡¢±à¼Æ÷ÓÃSourceInsight
3¡¢¹¹½¨¹²ÏíĿ¼£¬¹ÒÔØ¹²ÏíĿ¼
4¡¢windowsϹ²ÏíĿ¼ȨÏÞµÄÉèÖÃ
5¡¢ÓñàÒëÆ÷±àÒë³ö¿ÉÖ´ÐгÌÐò
linuxÏÂ ÍøÂç±à³Ì ±Ø±¸Í·Îļþ
#include <sys/types.h>
#include <sys/socket.h>
#include <errno.h>
#include <netinet/in.h>
......