- 論壇徽章:
- 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重定向的規(guī)則呢?
[ 本帖最后由 dustman 于 2005-12-26 09:43 編輯 ] |
|