不唯一匹配(包含字符的全都匹配上)(而且进程名最多为15个字符?)(前15个字符?)
方法1:嵌到程序里,通过命令行附带要查找的进程名称(交叉编译在arm摄像头里运行)方法2:通过搜素/proc文件夹下的内容获取进程pid(这个感觉难度比较大)
不唯一匹配(包含字符的全都匹配上)(而且进程名最多为15个字符?)(前15个字符?)ubuntu上
ps -e | grep 'receive' | awk '{print $1}'
arm摄像头上
ps -e | grep 'ky_ai_camera_en' | awk '{print $1}'
等等再弄
#include#include int main(int argc, const char *argv[]) { if(argc != 2) { printf("argc error![%s]n", argv[0]); return -1; } //char* process = argv[1]; char cmd[1024]; sprintf(cmd, "ps -e | grep '%s' | awk '{print $1}'", argv[1]); //拼接字符串 FILE* fp = popen(cmd, "r"); //打开管道,执行shell命令 //FILE* fp = popen("ps -e | grep 'ky_ai_camera_en' | awk {print $1}'", "r"); char buffer[10] = {0}; while(NULL != fgets(buffer, 10, fp)){ //逐行读取执行结果并打印 printf("PID: %sn", buffer); } pclose(fp); //关闭返回的文件指针,注意不是fclose,而是pclose return 0; }
运行效果:
参考文章:Linux下C语言开发(已知进程名得到其PID号)
参考文章:C语言循环遍历文件夹查找文件内容(搜素/proc文件夹下的内容获取进程pid)



