今天我试图debugging一个过程没有拿出正确的环境variables的问题。 我们花了好几个小时才意识到它没有select正确的variables。
我试图列出他们在这里使用的解决scheme: https : //serverfault.com/a/104175/90224 ( ps eww [pid] ),但它似乎有一个像3155个字符,这是甚至不接近足以满足特定的应用。 (这个时候甚至没有打印命令行选项)
我可以在AIX上使用另一种方法来find它吗? 我是一名软件开发人员,所以我不介意需要一些代码的解决scheme。
那么,再多一个你应该得到这一切根据手册页:
ewww从e标志中显示
INT_MAX并显示ENV列表,直到达到INT_MAX值。
这是一个相当大的限制。
如果您正在为此创build自己的工具,则应该查看ps用于ewww显示的getevars和geteargs函数。
这是一个天真的使用getevars ,打印自己的环境(限制getevars ):
#include <sys/types.h> #include <procinfo.h> #include <unistd.h> #include <stdio.h> #define ENV_MAX (1024*1024) int main(void) { struct procentry64 pe; char buffer[ENV_MAX]; pe.pi_pid = getpid(); int rc = getevars(&pe, sizeof(pe), buffer, sizeof(buffer)); if (rc != 0) { perror("getevars"); return 1; } buffer[ENV_MAX-2] = buffer[ENV_MAX-1] = 0; char *cur = buffer; char *end = buffer+sizeof(buffer); while ((*cur) && (cur < end)) { int len = puts(cur); cur += len; } return 0; }