提交 c87584a3 编写于 作者: R Rich Felker

add setdomainname syscall, fix getdomainname (previously a stub)

上级 a660180c
...@@ -165,6 +165,7 @@ int getpagesize(void); ...@@ -165,6 +165,7 @@ int getpagesize(void);
int getdtablesize(void); int getdtablesize(void);
int sethostname(const char *, size_t); int sethostname(const char *, size_t);
int getdomainname(char *, size_t); int getdomainname(char *, size_t);
int setdomainname(const char *, size_t);
int setgroups(size_t, const gid_t []); int setgroups(size_t, const gid_t []);
char *getpass(const char *); char *getpass(const char *);
int daemon(int, int); int daemon(int, int);
......
#define _GNU_SOURCE
#include <unistd.h> #include <unistd.h>
#include <sys/utsname.h> #include <sys/utsname.h>
#include <string.h> #include <string.h>
#include <errno.h>
int getdomainname(char *name, size_t len) int getdomainname(char *name, size_t len)
{ {
*name = 0; struct utsname temp;
uname(&temp);
if (!len || strlen(temp.domainname) >= len) {
errno = EINVAL;
return -1;
}
strcpy(name, temp.domainname);
return 0; return 0;
} }
#define _GNU_SOURCE
#include <unistd.h>
#include "syscall.h"
int setdomainname(const char *name, size_t len)
{
return syscall(SYS_setdomainname, name, len);
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册