从主机linux系统

时间:2018-01-30 12:55:07

标签: c linux

早上好, 我有一个C语言的应用程序,它运行在基于linux的嵌入式设备上。 业务逻辑设置TZ env。变量与说明:

setenv ("TZ", time_zone_string, 1);
tzset ();

假设time_zone_string与POSIX规则匹配。 我的应用程序的时区与主机系统设备的时区不同。

从主机设备,我可以访问TZ env。申请变量?在申请代码中没有放置一些printf()system()等等?

1 个答案:

答案 0 :(得分:1)

如果您可以将进程(或其中的coredump)附加到调试器,则可以从environ数组中搜索所需的环境变量。

gdb示例:

(gdb) print *(environ+10)
$27 = 0xbeb52fb1 "PWD=/"
(gdb) print *(environ+11)
$28 = 0xbeb52fb7 "SSH_CONNECTION=192.168.194.19 55358 192.168.194.21 22"
(gdb) print *(environ+12)
$29 = 0x11850 "ABC=123"
(gdb) 

可能有更简单的方法来找到正确的值。但是如果你只有很少的环境变量,那么你很快就会找到正确的环境变量。

更多信息:Man page of the variable