当前位置: 技术问答>linux和unix
快看这代码有点意思。
来源: 互联网 发布时间:2016-10-21
本文导语: #if !defined(WIN32) && !defined(GENERIC) struct timeval start_time; #endif { char *lang = getenv("LANG"); if(lang && strstr(lang, "UTF-8")) utf8env = 1; } { /* Hack the path of the binary... needed for relative module search. */ int i; binpath...
#if !defined(WIN32) && !defined(GENERIC)
struct timeval start_time;
#endif
{
char *lang = getenv("LANG");
if(lang && strstr(lang, "UTF-8")) utf8env = 1;
}
{
/* Hack the path of the binary... needed for relative module search. */
int i;
binpath = argv[0];
for(i=strlen(binpath)-1; i>-1; --i)
if(binpath[i] == '/' || binpath[i] == '\')
{
binpath[i] = 0;
break;
}
}
不是我孤陋寡闻吧。。。。
struct timeval start_time;
#endif
{
char *lang = getenv("LANG");
if(lang && strstr(lang, "UTF-8")) utf8env = 1;
}
{
/* Hack the path of the binary... needed for relative module search. */
int i;
binpath = argv[0];
for(i=strlen(binpath)-1; i>-1; --i)
if(binpath[i] == '/' || binpath[i] == '\')
{
binpath[i] = 0;
break;
}
}
不是我孤陋寡闻吧。。。。
|
有什么问题?
char *lang = getenv("LANG");
if(lang && strstr(lang, "UTF-8")) utf8env = 1;
这是检测环境变量LANG,如果其中包含有UTF-8就把变量utf8env置1
可以自己用 echo $LANG看看
后面那一段是把可执行文件的名字截掉,只留下路径。
argv[0]从后往前,见到第一个/就替换成0。比如
/bin/ls 得到 /bin
./a.out 得到 .
/usr/bin/gcc 得到 /usr/bin
char *lang = getenv("LANG");
if(lang && strstr(lang, "UTF-8")) utf8env = 1;
这是检测环境变量LANG,如果其中包含有UTF-8就把变量utf8env置1
可以自己用 echo $LANG看看
后面那一段是把可执行文件的名字截掉,只留下路径。
argv[0]从后往前,见到第一个/就替换成0。比如
/bin/ls 得到 /bin
./a.out 得到 .
/usr/bin/gcc 得到 /usr/bin