当前位置: 技术问答>linux和unix
关于_sysctl,man给出的example我编译不了。
来源: 互联网 发布时间:2016-01-23
本文导语: 大家看看,我的系统是FC6 #include #include #include _syscall1(int, _sysctl, struct __sysctl_args *, args); int sysctl(int *name, int nlen, void *oldval, size_t *oldlenp,void *newval, size_t newlen) { struct __sysctl_args args={name,nlen,oldval,oldlen...
大家看看,我的系统是FC6
#include
#include
#include
_syscall1(int, _sysctl, struct __sysctl_args *, args);
int sysctl(int *name, int nlen, void *oldval, size_t *oldlenp,void *newval, size_t newlen)
{
struct __sysctl_args args={name,nlen,oldval,oldlenp,newval,newlen};
return _sysctl(&args);
}
#define SIZE(x) sizeof(x)/sizeof(x[0])
#define OSNAMESZ 100
char osname[OSNAMESZ];
int osnamelth;
int name[] = { CTL_KERN, KERN_OSTYPE };
main()
{
osnamelth = sizeof(osname);
if (sysctl(name, SIZE(name), osname, &osnamelth, 0, 0))
perror("sysctl");
else
printf("This machine is running %*sn", osnamelth, osname);
return 0;
}
居然提示:expected declaration specifiers or '...' before '_sysctl'
在红帽子下面提示_sysctl未定义,请高手解答
#include
#include
#include
_syscall1(int, _sysctl, struct __sysctl_args *, args);
int sysctl(int *name, int nlen, void *oldval, size_t *oldlenp,void *newval, size_t newlen)
{
struct __sysctl_args args={name,nlen,oldval,oldlenp,newval,newlen};
return _sysctl(&args);
}
#define SIZE(x) sizeof(x)/sizeof(x[0])
#define OSNAMESZ 100
char osname[OSNAMESZ];
int osnamelth;
int name[] = { CTL_KERN, KERN_OSTYPE };
main()
{
osnamelth = sizeof(osname);
if (sysctl(name, SIZE(name), osname, &osnamelth, 0, 0))
perror("sysctl");
else
printf("This machine is running %*sn", osnamelth, osname);
return 0;
}
居然提示:expected declaration specifiers or '...' before '_sysctl'
在红帽子下面提示_sysctl未定义,请高手解答
|
在我的suse中在include最后加上一行
#include
后编译成功。就是简单的编译:gcc -o test test.c
_syscall1(int, _sysctl, struct __sysctl_args *, args);
这一行本身是一个宏,展开后就是对_sysctl的声明。
你确定一下这个文件是否存在:
/usr/include/linux/sysctl.h
#include
后编译成功。就是简单的编译:gcc -o test test.c
_syscall1(int, _sysctl, struct __sysctl_args *, args);
这一行本身是一个宏,展开后就是对_sysctl的声明。
你确定一下这个文件是否存在:
/usr/include/linux/sysctl.h
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。