'a static area' 是什么意思?

What is meant by 'a static area'?

man GETPWNAM(3)中的'a static area'是什么意思?

The return value may point to a static area, and may be overwritten by subsequent calls to getpwent(3), getpwnam(), or getpwuid(). (Do not pass the returned pointer to free(3).)

这可能是一个非常微不足道的问题,但我很好奇。

这意味着基本上有一个全局变量,其内存由所有提到的函数共享,所有这些函数returns指向该共享变量的指针。

所以如果你这样做,例如

struct passwd *pwd1 = getpwnam("foo");
struct passwd *pwd2 = getpwnam("bar");

那么有可能pwd1 == pwd2,第二次调用getpwnam覆盖了第一次调用收集的结构中的数据。