命令“who -b”的行为不同
Posted
技术标签:
【中文标题】命令“who -b”的行为不同【英文标题】:Command "who -b" behaves differently 【发布时间】:2015-07-31 12:01:39 【问题描述】:我正在尝试从“who -b”输出解析系统启动时间。
#define _XOPEN_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <ctype.h>
void GetSystemTurnOnTime()
FILE *fp;
char *pTemp = NULL;
char szBuffer[1024] = 0;
int iLen;
struct tm tm;
char buf[255];
fp = popen("who -b", "r");
fgets(szBuffer, sizeof(szBuffer), fp);
pTemp = szBuffer;
while(isspace(*pTemp))
++pTemp;
iLen = strlen(pTemp);
pTemp[iLen - 1] = '\0';
printf("%s\n", pTemp);
pclose(fp);
int
main(void)
GetSystemTurnOnTime();
exit(EXIT_SUCCESS);
输出: 在正常执行中,它给出: 系统启动 2015-07-31 11:08
如果我与守护程序集成,那么它会给出: 7月31日11:08
如果我用 gdb 执行守护进程,那么它再次给出: 系统启动 2015-07-31 11:08 任何人都可以帮助我为什么它提供两种不同的格式。
【问题讨论】:
我相信输出格式取决于一些LC_*
环境变量。
见unix.stackexchange.com/questions/98793/…
【参考方案1】:
您可以使用以下命令:
who -b | awk '$1=""; $2=""; print $0' | date -f -
【讨论】:
以上是关于命令“who -b”的行为不同的主要内容,如果未能解决你的问题,请参考以下文章