projects
/
oweals
/
musl.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
use rt_sigprocmask, not legacy sigprocmask, syscall in pthread exit code
[oweals/musl.git]
/
src
/
dirent
/
readdir_r.c
1
#include <dirent.h>
2
#include <errno.h>
3
#include <stdlib.h>
4
#include <string.h>
5
#include "__dirent.h"
6
#include "libc.h"
7
8
int readdir_r(DIR *dir, struct dirent *buf, struct dirent **result)
9
{
10
struct dirent *de;
11
int errno_save = errno;
12
int ret;
13
14
LOCK(&dir->lock);
15
errno = 0;
16
de = readdir(dir);
17
if ((ret = errno)) {
18
UNLOCK(&dir->lock);
19
return ret;
20
}
21
errno = errno_save;
22
if (de) memcpy(buf, de, de->d_reclen);
23
else buf = NULL;
24
25
UNLOCK(&dir->lock);
26
*result = buf;
27
return 0;
28
}
29
30
LFS64_2(readdir_r, readdir64_r);