Linux环境编程--进程
查看正在運(yùn)行的進(jìn)程
#ps -ef
#ps ax
可以看到狀態(tài)
?
查看nice值
#ps -l
#ps -f
?
?
system函數(shù)
傳遞命令,如同在shell中執(zhí)行
char * p="ps ax";
system(p);
?
或者 ="ps ax &";//ps一啟動(dòng)shell就返回
?
execl,execlp,execle函數(shù)
exec啟動(dòng)一個(gè)新程序,替換原有的進(jìn)程,因此這個(gè)新的被exec執(zhí)行的進(jìn)程的PID不會(huì)改變,和調(diào)用exec函數(shù)的進(jìn)程一樣。
表頭文件
??? #include<unistd.h>
execlp("ps","ps","ax",0);
參考:?exec函數(shù)族的使用
pid_t是什么?
是Linux下的進(jìn)程號(hào)類型,也就是Process ID _ Type 的縮寫。 其實(shí)是宏定義的unsigned int類型
sys/types.h:typedef short pid_t; /* used for process ids */
?
pid_t pid;
?
fork()函數(shù)
產(chǎn)生新進(jìn)程
pid=fork();
在語句pid=fork()之前,只有一個(gè)進(jìn)程在執(zhí)行這段代碼,但在這條語句之后,就變成兩個(gè)進(jìn)程在執(zhí)行了。
該函數(shù)被調(diào)用一次,但返回兩次。兩次返回的區(qū)別是子進(jìn)程的返回值是0,而父進(jìn)程的返回值則是新子進(jìn)程的進(jìn)程ID。
?
perror ( )函數(shù)
用 來 將 上 一 個(gè) 函 數(shù) 發(fā) 生 錯(cuò) 誤 的 原 因 輸 出 到 標(biāo) 準(zhǔn) 設(shè)備 (stderr)
?
puts()函數(shù)
按行將字符串送到流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;}}
總結(jié)
以上是生活随笔為你收集整理的Linux环境编程--进程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑硬盘多少钱啊?
- 下一篇: 用bind架设自己的智能DNS