我无法在我的 PostgreSQL C 扩展代码中获取环境变量。
例如,此函数始终返回111
:
#include "postgres.h"
#include "fmgr.h"
#include <stdlib.h>
PG_MODULE_MAGIC;
PG_FUNCTION_INFO_V1(myinc);
Datum
myinc(PG_FUNCTION_ARGS)
{
int32 arg = PG_GETARG_INT32(0);
char* envar = getenv("MYINC");
if (envar) {
PG_RETURN_INT32(arg + atoi(envar));
} else {
PG_RETURN_INT32(111);
}
}
虽然此 C 程序按预期工作,但它会打印以下内容MYINC
:
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("MYINC: %s", getenv("MYINC"));
return 0;
}