下面各位还是不要看了。太烂了。:(
/*
*
* 自动取新闻(内容)
*
* 读取 readnews.log
*
* */
#include "/root/bbssrc/include/bbs.h"
#define LOGFILE "/home/bbs/readnews.log"
#define LOGFILE2 "/home/bbs/readnews.fetch"
#define DIR BBSHOME##"/boards/"##BOARD##"/.DIR"
#define MAXLOG 10000
int main()
{
struct fileheader info;
FILE *fplog, *fp;
char board[100], fname[100], url[200], path[200], cmd[200];
char content[50000];
struct stat filestat;
int i, ch, filesize;
time_t mytime = time(0);
if ((fplog = fopen(LOGFILE".lock", "r")) != NULL) {
printf("Process still running, exit....\n\n");
exit(-1);
fclose(fplog);
}
fplog = fopen(LOGFILE".lock", "w");
fclose(fplog);
if ((fplog = fopen(LOGFILE, "r")) == NULL) {
printf(LOGFILE" not exist,so no task :) \n");
unlink(LOGFILE".lock");
exit(-1);
}
rename(LOGFILE, LOGFILE2);
if ((fplog = fopen(LOGFILE2, "r")) == NULL) {
perror(LOGFILE2);
exit(-1);
}
flock(fileno(fplog), LOCK_EX);
while (!feof(fplog)) {
fscanf(fplog, "%s %s %s\n", board, fname, url);
if (strlen(url) == 0) break;
sprintf(path, BBSHOME"/boards/%s/%s", board, fname);
sprintf(cmd, "(wget '%s' -q -O ~bbs/tmp/news.fetch.%d;"
"~bbs/bin/nohtml<~bbs/tmp/news.fetch.
%d|~bbs/bin/getbody>>%s;
rm ~bbs/tmp/news.fetch.%d) &", url, mytime, mytime,
path, mytime);
system(cmd);
mytime++;
}
flock(fileno(fplog), LOCK_UN);
fclose(fplog);
unlink(LOGFILE);
unlink(LOGFILE".lock");
return 0;
}
--
FROM AfterDark