fork的应用:
#include "stdio.h"#include "string.h"#include#include #include #include #define Max(a,b) ({int a1=a,b1=b; a1>b1?a1:b1;})int main(){ int i,j,k,*q; char *p="abc"; int pids[10]; int pid; q=pids; //printf("%d \n", getpid()); //sleep (3);for(i=0;i<3;i++){ printf("for-%d\n",i); pid=fork(); if(pid) { *(q++) = pid; }else if(pid == 0){ sleep(5); printf("child:%d \n", getpid()); break; }} if(pid>0) { for(i=0;i<3;i++) { // waitpid(pids[i], NULL, 0); printf("parent: %d, %d \n", getpid(),pids[i]); } } printf("song \n");}
没有waitpid时输出:
有waitpid时:
pthread_create 函数示例:
#include "stdio.h"#include "string.h"#include "pthread.h"void *thr_fn(void *arg){sleep(15); printf("sub :%d \n", pthread_self()); return NULL;}int main(){ pthread_t err; pthread_t ntid; err = pthread_create(&ntid, NULL, thr_fn, NULL); if (err != 0) printf("can't create thread: %s\n", strerror(err)); //pthread_join(ntid,NULL); printf("main :%d \n", pthread_self());sleep(16); return 0;}