process1.c

来自「本文件介绍了unix内核的c源代码」· C语言 代码 · 共 37 行

C
37
字号
#include <comlib.h>#define ProcessName "monitor1"#define ShellName "ps -ef|grep monitor1"int GetProcess1(char *pHost){	int all = 0, off;	char szLine[256], szFmt[] = "%s|PROC|%s|%d|1|%d|%s\n";	FILE *pfile;	char szUID[20], szPID[20], szPPID[20], szC[20], szSTIME[20], szTTY[20], szTIME[20], szCMD[40];		if ((pfile = popen(ShellName, "r")) == NULL)		/* 以管道形式运行进程 */	{											/* 错误提示 */		printf(szFmt, ProcessName, pHost, 0, 1, "error:shell");	}	else	{									/* 读取shell进程的每一行输出 */		memset(szLine, 0, sizeof(szLine));				while (fgets(szLine, sizeof(szLine), pfile) != NULL)		{			sscanf(szLine, "%s%s%s%s%s%s%s%s", szUID, szPID, szPPID, szC, szSTIME, szTTY, szTIME, szCMD);			if (strlen(szCMD) >= strlen(ProcessName))			{				off = strlen(szCMD)-strlen(ProcessName);				if (strcmp(szCMD+off, ProcessName) == 0) all++;			}       		}       		pclose(pfile);					/* 关闭管道 */		if (all > 0) printf(szFmt, pHost, ProcessName, all, 0, "OK");		else printf(szFmt, pHost, ProcessName, all, 1, "No Process");	}    }int main(int argc, char **argv){	GetProcess1(argv[1]);	return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?