Linux环境编程--进程
查看正在運行的進程
#ps -ef
#ps ax
可以看到狀態
?
查看nice值
#ps -l
#ps -f
?
?
system函數
傳遞命令,如同在shell中執行
char * p="ps ax";
system(p);
?
或者 ="ps ax &";//ps一啟動shell就返回
?
execl,execlp,execle函數
exec啟動一個新程序,替換原有的進程,因此這個新的被exec執行的進程的PID不會改變,和調用exec函數的進程一樣。
表頭文件
??? #include<unistd.h>
execlp("ps","ps","ax",0);
參考:?exec函數族的使用
pid_t是什么?
是Linux下的進程號類型,也就是Process ID _ Type 的縮寫。 其實是宏定義的unsigned int類型
sys/types.h:typedef short pid_t; /* used for process ids */
?
pid_t pid;
?
fork()函數
產生新進程
pid=fork();
在語句pid=fork()之前,只有一個進程在執行這段代碼,但在這條語句之后,就變成兩個進程在執行了。
該函數被調用一次,但返回兩次。兩次返回的區別是子進程的返回值是0,而父進程的返回值則是新子進程的進程ID。
?
perror ( )函數
用 來 將 上 一 個 函 數 發 生 錯 誤 的 原 因 輸 出 到 標 準 設備 (stderr)
?
puts()函數
按行將字符串送到流stdout中
?
代碼:
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>int main()
{pid_t pid;char *message;int n;printf("fork program starting\n");pid = fork();switch(pid) {case -1:perror("fork failed");exit(1);case 0:message = "This is the child\n";printf(message);
n = 5;break;default:message = "This is the parent\n";printf(message);
n = 3;break;}}
總結
以上是生活随笔為你收集整理的Linux环境编程--进程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑硬盘多少钱啊?
- 下一篇: 我很快乐请不要再说爱我是什么歌呢