Not getting full process name in psinfo\_t struct's field pr\_fname while reading process info from psinfo data file(/proc/%d/psinfo) into struct psinfo\_t from procfs.h in solaris.

Full psinfo\_t struct definition is present on below site:

<http://docs.oracle.com/cd/E19253-01/816-5174/6mbb98ui2/index.html>

Only if the process name is less than equal to 15 characters then I am getting the full process name other wise if process name is more than 15 characters then I am getting only first 15 characters of process name rest characters are truncated.

The code I am using is as below:

```
#include <iostream>
#include <cstdlib>
#include <procfs.h>
#include <fstream>
#include <string>

using namespace std;

int main(int argc, char* argv[])
{
    // get the pid from command line
    int pid  = atoi(argv[1]);

    // create the pstatus struct from procfs
    psinfo_t info;

    char file[100];
    sprintf(file, "/proc/%d/psinfo", pid);
    ifstream in(file);
    if (in)
    {
        in.read((char*)&info, sizeof(psinfo_t));
        in.close();

        cout << "My Name: " << info.pr_fname << endl;
    }
    else
    {
        cout << "Process Not Exists!" << endl;
    }

return 0;
}

```

Do I have to read some other file (other than psinfo) from procfs file system in order to get full process name.
Also if I am using belwo ps command from command line then I am able to get full process name:

```
ps -p 4970 -o comm

```

but I don't want to get process name by executing ps command inside my code.
I am curious from where ps binary is picking up the process name.