Date: Thu, 19 Jul 2007 23:23:45 -0400 From: "Michael B Allen" <ioplex@gmail.com> To: freebsd-hackers <freebsd-hackers@freebsd.org> Subject: Re: Path to executable of current process? Message-ID: <78c6bd860707192023u645a3c39ua713cc4384c3b876@mail.gmail.com> In-Reply-To: <78c6bd860707191900g375f98ado8315603feac50247@mail.gmail.com> References: <78c6bd860707191725r14b8bfe3sf15c1f0e30cf82ca@mail.gmail.com> <78c6bd860707191900g375f98ado8315603feac50247@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> Is there any way to get argv[0] for [a particular] process without being root? After more digging I see sysctl seems to be the way to do this but can I get the full path to the executable form kinfo_proc? How does ps do this? static const char * getcmdline(pid_t pid) { static struct kinfo_proc ki_proc; int mib[4], len; mib[0] = CTL_KERN; mib[1] = KERN_PROC; mib[2] = KERN_PROC_PID; mib[3] = pid; len = sizeof(struct kinfo_proc); if (sysctl(mib, 4, &ki_proc, &len, NULL, 0) == -1) return NULL; return ki_proc.ki_??? } Mike
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?78c6bd860707192023u645a3c39ua713cc4384c3b876>