【发布时间】:2013-05-04 22:15:52
【问题描述】:
getenv 用于访问 Mac OS X 和 Linux 上的环境变量,它以char* 作为输入。这是否意味着我不能将 UNICODE 字符串作为值存储在这些系统上的这些环境变量中?
在 Windows GetEnvironmentVariable 等上,返回可以容纳 UTF16 字符串的宽字符串。
【问题讨论】:
-
或者getenv返回的字符串的编码是什么? UTF8?
-
POSIX 规范对环境变量值有这样的说法:“环境变量可以分配的值不受限制,除非它们被认为以空字节结尾,并且总空间用于存储环境,进程的参数限制为 {ARG_MAX} 个字节。"所以 UTF8 在某种意义上应该没问题。但它也说:“对于在符合 IEEE Std 1003.1-2001 的系统之间可移植的值,该值应由可移植字符集中的字符组成(NUL 除外,如下所示)”
-
您想要一个带有 UTF-8 字符串的环境变量的确切目的是什么?
标签: c linux macos environment-variables