Does ps(1) also truncate at the same points? The kernel might only store so many characters or the regular API for retrieving process information only return a fixed-width field.
While looking up CPAN docs for Proc::ProcessTable, I found P9Y::ProcessTable, which seems to be a pure-Perl attempt at a similar module. Reading its code suggests that Solaris puts the command line and the filename in fixed-width fields in a "psinfo" file. I suspect that ps(1) will have the same problem and that you have encountered kernel limitations on Solaris and HP-UX.
Further digging into the Proc::ProcessTable source shows that the HP-UX and Solaris ports more-or-less directly return information from the kernel. Unless there are other ways to get the command line and filename, I think that you are stuck.
Look around in /proc/<PID>. On Linux, for example, the overall process status file contains only a command name, but the entire argv array is in cmdline.
In reply to Re: Proc::ProcessTable truncating cmndline and fname
by jcb
in thread Proc::ProcessTable truncating cmndline and fname
by rgren925
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |