자신의 process 이름 얻어오는 함수 좀 ^^
글쓴이: ninakhlee / 작성시간: 목, 2006/04/13 - 1:36오후
FreeBSD4.4 사용하고 있는데요.
현재 실행되어 있는 자신의 process의 이름을 구하고 싶은데..
잘 안되네요..
솔라리스같은 경우에는 아래와 같이 할 수 있잖아요.
근데 FreeBSD에서 저렇게 하려고 하면 우선 psinfo_t부터 없다고 나오네요.
FreeBSD는 프로세스 정보 얻어오는 구조체가 다른가요?
알려주세요.. ^^
struct psinfo_t pinfo; sprintf (procdir, "/proc/%d/status", getpid()); fd = open (procdir, O_RDONLY); read(fd, (void *)&pinfo, sizeof(pinfo)); printf ("process name is %s\n", pinfo.pr_fname);
Forums:
좀 다른 방법이지만
좀 다른 방법이지만 그냥 argv[0]을 사용하면 간단하지 않은가요?
======================
BLOG : http://superkkt.com
======================
BLOG : http://superkkt.com
getpid()로 pid 얻어서
getpid()로 pid 얻어서 /proc를 뒤지는 것도 한 방법 아닐까요?
_____________________________
언제나 맑고픈 샘이가...
http://yubink.com - 강아지 필요하세요?
http://purewell.biz - 헙!!
_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz
이럴때 top(3)의
이럴때 top(3)의 소스를 보면 좋겠죠 :-)
FreeBSD 6.X에서는 kvm_getprocs() 로부터 얻어지는 kinfo_proc 스트럭쳐의 ki_comm 멤버 변수가 아마 command name일 겁니다. 매뉴얼 페이지를 보세요!
FreeBSD는 대부분 /proc을 사용하지 않는답니다~ :-) 보안이나 기타 등등 때문에..
----
Let's shut up and code.
----
Let's shut up and code.
FreeBSD 6.0 에서
FreeBSD 6.0 에서 테스트했습니다. command name을 printf로 출력하는 예입니다.
----
Let's shut up and code.
----
Let's shut up and code.
댓글 달기