【发布时间】:2013-03-10 06:41:43
【问题描述】:
这是我正在处理的代码部分:
void update_log(char *name, pthread_t ID, char *status, char *update)
{
time(&rawtime);
time_str = asctime(localtime(&rawtime));
time_str[strlen(time_str) - 1] = 0;
fprintf(log_file, "[%s] [%12s] [%u] [%s] %s\n", time_str, name, (unsigned int)ID, status, update);
}
输出是:
[Sat Mar 9 21:36:20 2013] [ main] [197777152] [OK] ******
[Sat Mar 9 21:36:20 2013] [update_table] [172680960] [OK] **********
[Sat Mar 9 21:36:22 2013] [update_table] [172680960] [OK] ******
[Sat Mar 9 21:36:25 2013] [ main] [197777152] [OK] ****************
有没有办法让 name 变量的输出看起来像这样(所以它仍然需要 12 个块并且仍然在括号中):
[Sat Mar 9 21:36:20 2013] [main] [197777152] [OK] ******
[Sat Mar 9 21:36:20 2013] [update_table] [172680960] [OK] **********
[Sat Mar 9 21:36:22 2013] [update_table] [172680960] [OK] ******
[Sat Mar 9 21:36:25 2013] [main] [197777152] [OK] ****************
我正在考虑在 fprintf() 函数之前为 name 变量添加括号,但是在 C 中是否有一种简单的方法可以在字符串的开头添加一个字符?
谢谢。
【问题讨论】:
-
顺便说一下,这些函数的
char *参数应该是const char *。