diff options
author | ptt <ptt@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-03-24 00:12:54 +0800 |
---|---|---|
committer | ptt <ptt@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2004-03-24 00:12:54 +0800 |
commit | efb5a6333d3fe1b4e9f3c744d6be6aaab27504e9 (patch) | |
tree | aa3e9d28823a9d1a0d534a1db9e9c056e4357608 /mbbsd/record.c | |
parent | 876e06732592fefb6ac7fb9d4530105ad29045ff (diff) | |
download | pttbbs-efb5a6333d3fe1b4e9f3c744d6be6aaab27504e9.tar pttbbs-efb5a6333d3fe1b4e9f3c744d6be6aaab27504e9.tar.gz pttbbs-efb5a6333d3fe1b4e9f3c744d6be6aaab27504e9.tar.bz2 pttbbs-efb5a6333d3fe1b4e9f3c744d6be6aaab27504e9.tar.lz pttbbs-efb5a6333d3fe1b4e9f3c744d6be6aaab27504e9.tar.xz pttbbs-efb5a6333d3fe1b4e9f3c744d6be6aaab27504e9.tar.zst pttbbs-efb5a6333d3fe1b4e9f3c744d6be6aaab27504e9.zip |
fix the problem of black hole
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@1602 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd/record.c')
-rw-r--r-- | mbbsd/record.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/mbbsd/record.c b/mbbsd/record.c index 924f1449..64488842 100644 --- a/mbbsd/record.c +++ b/mbbsd/record.c @@ -555,14 +555,19 @@ stamplink(char *fpath, fileheader_t * fh) int do_append(char *fpath, fileheader_t * record, int size) { - int fd; + int fd, fsize=0; + struct stat st; if ((fd = open(fpath, O_WRONLY | O_CREAT, 0644)) == -1) { perror("open"); return -1; } flock(fd, LOCK_EX); - lseek(fd, 0, SEEK_END); + + if(fstat(fd, &st) ) + fsize = st.st_size; + + lseek(fd, (fsize / size) * size, SEEK_CUR); // avoid offset safewrite(fd, record, size); |