前台进程组、后台进程组
生活随笔
收集整理的這篇文章主要介紹了
前台进程组、后台进程组
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、前臺(tái)進(jìn)程組、后臺(tái)進(jìn)程組
cat | cat & cat | cat | cat輸出結(jié)果:
?
二、主要函數(shù)應(yīng)用
1. tcgetpgrp函數(shù)原型:
#include <unistd.h> pid_t tcgetpgrp(int fd);返回值:若成功,返回前臺(tái)進(jìn)程組ID, 若出錯(cuò),返回-1分析:tcgetpgrp函數(shù)返回前臺(tái)進(jìn)程組ID, 它與在fd打開(kāi)的終端相關(guān)聯(lián)
?
2. tcsetpgrp函數(shù)原型:
#include <unistd.h> pid_t setgetpgrp(int fd);返回值:若成功,返回0, 若出錯(cuò),返回-1分析:如果進(jìn)程有一個(gè)控制終端,則該進(jìn)程可以調(diào)用tcsetpgrp將前臺(tái)進(jìn)程組ID設(shè)置為pgrpid。pgrpid的值應(yīng)當(dāng)是在同一會(huì)話中的一個(gè)進(jìn)程組的ID,fd必須引用該會(huì)話的控制終端。
?
3. tcgetsid函數(shù)原型:
#include <termios.h> pid_t tcgetsid(int filedes); 若成功則返回會(huì)話首進(jìn)程進(jìn)程組ID,出錯(cuò)則返回-1.分析:給出控制tty的文件描述符,應(yīng)用程序能獲得會(huì)話首進(jìn)程的進(jìn)程組ID
?
三、程序清單
測(cè)試代碼:
#include <stdio.h> #include <unistd.h> #include <signal.h> #include <termios.h> #include <fcntl.h>void judge(void) {pid_t pid;pid = tcgetpgrp(STDIN_FILENO);if (pid == -1) {perror("tcgetpgrp");return;}else if (pid == getpgrp()) {printf("foreground\n");} else {printf("background\n");} }int main(void) {pid_t spid;printf("tcgetsid:%d,pgrp=%d,sid=%d\n", tcgetsid(STDIN_FILENO), getpgrp(), getsid(getpid()));spid = tcgetsid(STDIN_FILENO);signal(SIGTTOU, SIG_IGN);judge();int result;result = tcsetpgrp(STDIN_FILENO, getpgrp());if (result == -1) {perror("tcsetpgrp");return -1;}judge();result = tcsetpgrp(STDIN_FILENO, spid);return 0; }輸出結(jié)果:
?
三、參考資料
1. 《UNIX環(huán)境高級(jí)編程》筆記
總結(jié)
以上是生活随笔為你收集整理的前台进程组、后台进程组的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 2016台版恶作剧之吻剧情介绍
- 下一篇: 【孤儿进程】孤儿进程组、守护进程