Annotation of libaitsync/src/file.c, revision 1.1.1.1
1.1 misho 1: /*************************************************************************
2: * (C) 2010 AITNET ltd - Sofia/Bulgaria - <misho@aitbg.com>
3: * by Michael Pounov <misho@openbsd-bg.org>
4: *
5: * $Author: misho $
6: * $Id: defs.h,v 1.1.1.1 2008/11/05 17:02:55 misho Exp $
7: *
8: *************************************************************************/
9: #include "global.h"
10: #include "file.h"
11:
12:
13: int syncOpen(const char *csFile, int mode)
14: {
15: int f;
16:
17: if (!csFile || (*csFile == '-' && !csFile[1]))
18: return mode;
19:
20: f = open(csFile, !mode ? O_RDONLY : O_WRONLY | O_CREAT | O_TRUNC, 0644);
21: if (f == -1)
22: SETERR;
23:
24: return f;
25: }
26:
27: inline int syncTemp(char * __restrict psName, int len)
28: {
29: char str[] = "/tmp/ansyncXXXXXX.dlt";
30: int f;
31:
32: f = mkstemps(str, 4);
33: strlcpy(psName, str, len);
34:
35: return f;
36: }
37:
38: void syncClose(int f)
39: {
40: if (f > 2)
41: close(f);
42: }
43:
44: int syncEOF(int f)
45: {
46: off_t old;
47: int ret = 0;
48:
49: old = lseek(f, 0, SEEK_CUR);
50: ret = lseek(f, 0, SEEK_END) - old;
51: if (lseek(f, old, SEEK_SET) == -1) {
52: SETERR;
53: return -1;
54: }
55:
56: return !ret;
57: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>