mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-18 21:29:19 +02:00
parent
7885db95cf
commit
0bbb60060a
2 changed files with 32 additions and 11 deletions
|
@ -24,5 +24,5 @@
|
||||||
(getpwuid_r user (make-string 1024)))))
|
(getpwuid_r user (make-string 1024)))))
|
||||||
(define (group-information group)
|
(define (group-information group)
|
||||||
(safe-car (if (string? group)
|
(safe-car (if (string? group)
|
||||||
(getgrnam_r group (make-string 1024))
|
(getgrnam-safe group (make-string 1024))
|
||||||
(getgrgid_r group (make-string 1024)))))))))
|
(getgrgid-safe group (make-string 1024)))))))))
|
||||||
|
|
|
@ -83,13 +83,34 @@
|
||||||
(cond-expand
|
(cond-expand
|
||||||
(emscripten)
|
(emscripten)
|
||||||
(else
|
(else
|
||||||
(define-c errno getgrgid_r
|
(c-declare "
|
||||||
|
int getgrnam_safe(const char* name, struct group* grp,
|
||||||
|
char* buf, size_t buflen,
|
||||||
|
struct group** result) {
|
||||||
|
int res = getgrnam_r(name, grp, buf, buflen, result);
|
||||||
|
if (res == 0 && result == NULL) {
|
||||||
|
res = errno ? errno : ENOENT;
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
int getgrgid_safe(gid_t gid, struct group* grp,
|
||||||
|
char* buf, size_t buflen,
|
||||||
|
struct group** result) {
|
||||||
|
int res = getgrgid_r(gid, grp, buf, buflen, result);
|
||||||
|
if (res == 0 && result == NULL) {
|
||||||
|
res = errno ? errno : ENOENT;
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
")
|
||||||
|
|
||||||
|
(define-c errno getgrgid-safe
|
||||||
(gid_t (result group)
|
(gid_t (result group)
|
||||||
(link string)
|
(link string)
|
||||||
(value (string-size arg2) int)
|
(value (string-size arg2) int)
|
||||||
(result pointer group)))
|
(result pointer group)))
|
||||||
|
|
||||||
(define-c errno getgrnam_r
|
(define-c errno getgrnam-safe
|
||||||
(string (result group)
|
(string (result group)
|
||||||
(link string)
|
(link string)
|
||||||
(value (string-size arg2) int)
|
(value (string-size arg2) int)
|
||||||
|
|
Loading…
Add table
Reference in a new issue