source: bootcd/isolinux/syslinux-6.03/com32/lib/sys/zfopen.c @ dd1be7c

Last change on this file since dd1be7c was e16e8f2, checked in by Edwin Eefting <edwin@datux.nl>, 3 years ago

bootstuff

  • Property mode set to 100644
File size: 665 bytes
Line 
1/*
2 * zfopen.c
3 */
4
5#include <stdio.h>
6#include <unistd.h>
7#include <fcntl.h>
8#include <syslinux/zio.h>
9
10FILE *zfopen(const char *file, const char *mode)
11{
12    int flags = O_RDONLY;
13    int plus = 0;
14    int fd;
15
16    while (*mode) {
17        switch (*mode) {
18        case 'r':
19            flags = O_RDONLY;
20            break;
21        case 'w':
22            flags = O_WRONLY | O_CREAT | O_TRUNC;
23            break;
24        case 'a':
25            flags = O_WRONLY | O_CREAT | O_APPEND;
26            break;
27        case '+':
28            plus = 1;
29            break;
30        }
31        mode++;
32    }
33
34    if (plus) {
35        flags = (flags & ~(O_RDONLY | O_WRONLY)) | O_RDWR;
36    }
37
38    fd = zopen(file, flags, 0666);
39
40    if (fd < 0)
41        return NULL;
42    else
43        return fdopen(fd, mode);
44}
Note: See TracBrowser for help on using the repository browser.