📄 resume.c
字号:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <errno.h>#include "Data.h"#include "Resume.h"#include "Misc.h"extern struct thread_data *wthread;extern struct request *req;extern int nthreads;extern int bwritten;void save_log(){ char *logfile; struct hist_data h; FILE *fp; logfile = (char *)calloc(255, sizeof(char)); if (strlen(req[0].lfile) == 0) snprintf(logfile, 255, "aget-%s.log", req[0].file); else snprintf(logfile, 255, "aget-%s.log", req[0].lfile); if ((fp = fopen(logfile, "w")) == NULL) { fprintf(stderr, "cannot open log file %s for writing: %s\n", logfile, strerror(errno)); exit(1); } memcpy(&(h.req), req, sizeof(struct request)); memcpy(&(h.wthread), wthread, sizeof(struct thread_data) * nthreads); h.nthreads = nthreads; h.bwritten = bwritten; printf("--> Logfile is: %s, so far %d bytes have been transferred\n", logfile, h.bwritten); fwrite(&h, sizeof(struct hist_data), 1, fp); fclose(fp); free(logfile);}int read_log(struct hist_data *h){ char *logfile; FILE *fp; logfile = (char *)calloc(255, sizeof(char)); if (strlen(req[0].lfile) == 0) snprintf(logfile, 255, "aget-%s.log", req[0].file); else snprintf(logfile, 255, "aget-%s.log", req[0].lfile); Log("Attempting to read log file %s for resuming download job...", logfile); if ((fp = fopen(logfile, "r")) == NULL) { if (errno == ENOENT) { Log("Couldn't find log file for this download, starting a clean job..."); return -1; } else { fprintf(stderr, "cannot open log file %s for reading: %s\n", logfile, strerror(errno)); exit(1); } } fread(h, sizeof(struct hist_data), 1, fp); bwritten = h->bwritten; fclose(fp); Log("%d bytes already transferred", bwritten); /* Unlinking logfile after we've read it */ if ((unlink(logfile)) == -1) fprintf(stderr, "read_log: cannot remove stale log file %s: %s\n", logfile, strerror(errno)); free(logfile); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -