- 论坛徽章:
- 0
|
谢谢楼上3位
我使用如下测试代码,分别在每次向stderr输出前后,在日志文件中进行标记,再用cron每隔一小时调用一次测试程序,结果只有调用fpriintf(stderr, ...)之前的打印信息,没有之后的
#include <stdio.h>
#include <time.h>
#include <string.h>
unsigned char * code =
"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
void write_to_error()
{
int i;
printf("code len = %d\n", strlen(code));
for (i = 0; i < 10000; i ++)
{
fprintf(stderr, " --- %s --- \n", code);
}
}
void write_log(void)
{
FILE *fd= NULL;
char * dir="/mywork/log/test_log";
fd = fopen(dir, "a+");
if(fd == NULL)
{
return;
}
fprintf(fd, "%u --- begin --- \n", time(0));
write_to_error();
fprintf(fd, "%u --- end --- \n", time(0));
fclose(fd);
}
int main()
{
write_log();
return 0;
}
总之,这个问题可能是由于cron重定向的位置不合理造成的,比如重定向到某个容量非常小的存储空间去。(不过这也让我很纳闷,最多是缓冲一下而已,也不应该引起进程退出阿)
再问一下6楼的兄弟:怎样察看cron将标准io重定向的规则呢?
[ 本帖最后由 dustman 于 2005-12-26 09:43 编辑 ] |
|