반응형
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | #include <stdio.h> #include <dirent.h> #include <string.h> static int which_number ( char *s) { int len, i; len = strlen (s); for (i = 0; i < len; i++) if ((s[i] < '0' || s[i] > '9' )) return -1; return atoi (s); } int get_pid_from_proc_by_name ( char *str) { DIR *dp; struct dirent *dir; char buf[100], line[1024], tag[100], name[100]; int pid; FILE *fp; dp = opendir ( "/proc" ); if (!dp) return -1; while ((dir = readdir (dp))) { pid = which_number (dir->d_name); if (pid == -1) continue ; /* Open /proc/pid/status file. */ snprintf (buf, 100, "/proc/%d/status" , pid); fp = fopen (buf, "r" ); if (fp == NULL) continue ; /* Get first line with name. */ fgets (line, 1024, fp); /* Close stream. */ fclose (fp); sscanf (line, "%s %s" , tag, name); if (! strcmp (name, str)) { closedir(dp); return pid; } } closedir(dp); return -1; } |
반응형
'IT Tech > Linux' 카테고리의 다른 글
awk에서 쉘파라메터 사용하기 (0) | 2015.06.12 |
---|---|
[LINUX] ARP 테이블 클리어, ip 툴 (0) | 2015.01.30 |
VMWare+Linux 루트 패스워드(Root Password) 복구 방법!! (0) | 2013.11.17 |
[리눅스] 인터페이스 맥 주소(MAC Address) 수정하기 (0) | 2012.04.26 |
[리눅스] screen utility 사용법 (0) | 2012.01.14 |
[LINUX] 리눅스 시스템에 VLAN 추가,삭제하기 (0) | 2011.09.22 |
[네크워크&리눅스] tcpdump로 패킷 덤프 사용 예제 (0) | 2011.09.16 |
VIM 프로그래밍 관련 튜닝 및 운용 단축키 표(VIM Cheat Sheet)과 그밖의 팁 (0) | 2011.08.12 |
[리눅스] 프로세스 이름으로 검색(grep)해서 죽이기 (0) | 2011.08.05 |
[리눅스] 유팉 - grep 에서 특정 디렉토리(.svn)을 제외하고 검색하기 (0) | 2011.06.17 |