trinity-devel@lists.pearsoncomputing.net

Message: previous - next
Month: March 2012

Re: [trinity-devel] fprintf(stderr, "tdeinit: PID %ld terminated.\n", (long) exit_pid);

From: Aleksey Midenkov <midenok@...>
Date: Fri, 2 Mar 2012 23:22:49 +0400
On Fri, Mar 2, 2012 at 10:04 PM, Timothy Pearson
<kb9vqf@...> wrote:
>> On 2 March 2012 09:17, Aleksey Midenkov <midenok@...> wrote:
>>> On Fri, Mar 2, 2012 at 8:12 AM, Darrell Anderson
>>> <humanreadable@...> wrote:
>>>> This message is from tdelibs/kinit/kinit.cpp. They appear in the
>>>> xession log.
>>>>
>>>> I don't mind the messages and I can see from the source code they are
>>>> intended to be debugging aids.
>>>>
>>>> But they lack information. How do I add the process name to the
>>>> message?
>>>>
>>>> Like this:
>>>>
>>>> PID 10804 (process name) terminated.
>>>>
>>>> With that information the message might remain useful only for
>>>> debugging, but at least the message appears more useful and
>>>> informational to users.
>>>>
>>>
>>> You can consult /proc/<PID>/cmdline contents.
>>>
>>
>> Yeah this is the way to do it - but it's not portable is it?
>>
>> Calvin
>
> Use an #ifdef for POSIX systems to enable extra information from
> /proc/<PID>, and keep the original code for non-POSIX systems.  This type
> of code is present in a few places in tdelibs already.
>

To be strict, this is not POSIX standard. Therefore such check does
not guarantee procfs presence. And vice versa: procfs presence does
not require POSIX compliance. So, I'm not sure if such check is
correct. Better look at the sources.

And, AFAIK, POSIX does not cover process table info at all. So, on
Linux this is the only way. IMHO.