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