implement "low hanging fruit" from C11

based on Gregor's patch sent to the list. includes:
- stdalign.h
- removing gets in C11 mode
- adding aligned_alloc and adjusting other functions to use it
- adding 'x' flag to fopen for exclusive mode
This commit is contained in:
Rich Felker
2012-08-25 23:15:13 -04:00
parent b5289fd749
commit 9bff7c133e
7 changed files with 75 additions and 49 deletions

View File

@ -5,7 +5,6 @@ FILE *fopen(const char *filename, const char *mode)
FILE *f;
int fd;
int flags;
int plus = !!strchr(mode, '+');
/* Check for valid initial mode character */
if (!strchr("rwa", *mode)) {
@ -14,9 +13,10 @@ FILE *fopen(const char *filename, const char *mode)
}
/* Compute the flags to pass to open() */
if (plus) flags = O_RDWR;
if (strchr(mode, '+')) flags = O_RDWR;
else if (*mode == 'r') flags = O_RDONLY;
else flags = O_WRONLY;
if (strchr(mode, 'x')) flags |= O_EXCL;
if (*mode != 'r') flags |= O_CREAT;
if (*mode == 'w') flags |= O_TRUNC;
if (*mode == 'a') flags |= O_APPEND;