linux 學習筆記2
阿新 • • 發佈:2018-12-18
程式和程序
1.程式
程式:儲存在磁碟上某個目錄上的可執行檔案。
2.程序和程序ID
程式的執行例項被稱為程序(windows 叫做任務),每個程序都有一個程序ID。
列印程序ID
#include "apue.h"
int main(void)
{
pritnf("hello world from process ID %ld\n",(long)getpid());
return 0;
}
3.程序控制
介紹3個主要函式fork、exec和waitpid
#include"apue.h"
#include <sys/wait.h>
int main(void)
{
char buf[MAXLINE];
pid_t pid;
int status;
printf("%%");
while(fgets(buf,MAXLINE,stdin)!=NULL)
{
if(buf[strlen(buf) - 1] == '\n' )
buf[strlen(buf)-1]=0;//execlp()函式要求引數是以NULL結尾的
if((pid=fork())<0)
err_sys("fork error");
else if(pid==0)
{
execlp(buf,buf,(char*)0);
err_ret("Counldn't execute : %s" ,buf);
exit(127);
}
if((pid=waitpid(pid,&status,0))<0)
err_sys("waitpid error");
printf("%% ");
}
return 0;
}
呼叫fork建立一個程序,新程序是呼叫程序的副本,稱呼叫程序為父程序,新建立的程序 為子程序。fork對父程序返回一個新的程序ID,對子程序返回0