早上好,
我有一个C语言的应用程序,它运行在基于linux的嵌入式设备上。
业务逻辑设置TZ
env。变量与说明:
setenv ("TZ", time_zone_string, 1);
tzset ();
假设time_zone_string
与POSIX规则匹配。
我的应用程序的时区与主机系统设备的时区不同。
从主机设备,我可以访问TZ
env。申请变量?在申请代码中没有放置一些printf()
,system()
等等?
答案 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)
可能有更简单的方法来找到正确的值。但是如果你只有很少的环境变量,那么你很快就会找到正确的环境变量。