SYSCTL

Section: ¸®´ª½º ÇÁ·Î±×·¡¸Ó ¸Å´º¾ó (2)
Updated: 1996³â 5¿ù 11ÀÏ
Index
Return to Main Contents
 

À̸§

sysctl - ½Ã½ºÅÛ ÆĶó¹ÌÅ͵éÀ» ÀÐ°í ¾´´Ù.  

»ç¿ë¹ý

#include <unistd.h>

#include <linux/unistd.h>

#include <linux/sysctl.h>

_syscall1(int, _sysctl, struct __sysctl_args *, args);

int _sysctl(struct __sysctl_args *args);  

¼³¸í

_sysctl ½Ã½ºÅÛ ÄÝÀº Ä¿³Î Æĸ®¹ÌÅ͵éÀ» ÀÐ°í ¾´´Ù. ¿¹¸¦ µé¾î, È£½ºÆ® À̸§À̳ª ¿­¸° ÆÄÀϵéÀÇ ÃÖ´ë ¼ö µîÀÌ´Ù. ÀÎÀÚ´Â ´ÙÀ½°ú °°Àº ÇüÅÂÀÌ´Ù:

struct __sysctl_args {
        int *name;        /* º¯¼ö¸¦ °¡¸®Å°´Â integer vector */
        int nlen;         /* ÀÌ º¤ÅÍÀÇ ±æÀÌ*/
        void *oldval;     /* 0 ¶Ç´Â ¿¹Àü °ªÀ» ÀúÀåÇϱâ À§ÇÑ ÁÖ¼Ò*/
        size_t *oldlenp;  /* ¿¹Àü °ªÀ» À§ÇØ ÀÌ¿ëÇÒ¼ö ÀÖ´Â °ø°£,
                                          ¿¹Àü °ªÀÇ ½ÇÁ¦ Å©±â¿¡ ÀÇÇØ À§¿¡ ¾²¿©Áø´Ù.*/
        void *newval;     /* 0 ¶Ç´Â »õ·Î¿î °ªÀÇ ÁÖ¼Ò*/
        size_t newlen;    /* »õ·Î¿î °ªÀÇ Å©±â*/
};

ÀÌ ÇÔ¼ö´Â Æ®¸® ±¸Á¶¿¡¼­ Ž»öÀ» Çϸç /proc/sys¾Æ·¡ÀÇ µð·ºÅ丮 Æ®¸®¿Í ºñ½ÁÇÏ´Ù. ±×¸®°í ¸¸ÀÏ ¿ä±¸µÈ ¾ÆÀÌÅÛÀÌ ¹ß°ßµÈ´Ù¸é ¸î¸î Àû´çÇÑ ·çƾµéÀÌ ÀÌ °ªÀ» Àаųª ¹ø°æÇϱâ À§Çؼ­ È£ÃâµÈ´Ù.  

¿¹Á¦

#include <linux/unistd.h>
#include <linux/types.h>
#include <linux/sysctl.h>

_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 = SIZE(osname);
        if (sysctl(name, SIZE(name), osname, &osnamelth, 0, 0))
                perror("sysctl");
        else
                printf("This machine is running %*s\n", osnamelth, osname);
        return 0;
}

 

¹Ýȯ°ª

¼º°ø½Ã, _sysctl ´Â 0ÀÌ ¸®ÅϵǴÙ. ±×·¸Áö ¾ÊÀ¸¸é, -1 °ªÀÌ ¸®ÅϵǸç errno ´Â ¿¡·¯¸¦ °¡¸®Å°¸ç ¼³Á¤µÈ´Ù.  

¿¡·¯

ENOTDIR
name ÀÌ ¹ß°ßµÇÁö ¾Ê¾Ò´Ù.
EPERM
¸¸³­ `directories'Áß Çϳª¿¡ ´ëÇÑ Å½»ö Çã°¡±ÇÀÌ ¾ø°Å³ª, oldval °¡ 0ÀÌ ¾Æ´Ñ°÷ÀÇ Àбâ Çã°¡±ÇÀÌ ¾ø°Å³ª, newval ÀÌ 0ÀÌ ¾Æ´Ñ°÷ÀÇ ¾²±â Çã°¡±ÇÀÌ ¾ø´Ù.
EFAULT
È£ÃâÀº non-NULLÀÎ oldval ¸¦ ¼³Á¤ÇÏ¿© Àü °ªÀ» ¿ä±¸ÇßÁö¸¸, oldlenp¿¡ ÀÖ´Â °÷Àº 0 À» Çã°¡ÇÑ´Ù.
 

ȣȯ

ÀÌ ÇÔ¼ö´Â ¸®´ª½º¿¡ ÀÇÁ¸Çϸç ȣȯ¼ºÀ» ¿°µÎ¿¡ µÐ ÇÁ·Î±×·¥¿¡¼­ »ç¿ëÇؼ­´Â ¾ÈµÈ´Ù.

sysctl ½Ã½ºÅÛ ÄÝÀº Linux ¹öÀü 1.3.57ÀÌÈĺÎÅÍ Á¸ÀçÇÑ´Ù. ÀÌ°ÍÀº 4.4BSD¿¡ ±â¹ÝÀ» µÎ°í ÀÖ´Ù. ´ÜÁö ¸®´ª½º¸¸ÀÌ /proc/sys ¸¦ ¹Ý¿µÇÏ°í ÀÖÀ¸¸ç °´Ã¼ À̸§ ±¸Á¶µéÀº Linux¿Í BSD 4.4¿¡¼­ ¼­·Î ´Ù¸£´Ù. ±×·¯³ª, sysctl(2)ÇÔ¼öÀÇ ¼±¾ðÀº ¾çÂÊ ¸ðµÎ °°´Ù.  

¹ö±×

°´Ã¼ À̸§µéÀº Ä¿³Î ¹öÀü¿¡ µû¶ó ´Ù¸¥´Ù. ÀÌ ½Ã½ºÅÛ ÄÝÀº ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­´Â ¾µ¸ð°¡ ¾ø´Ù. ´ë½Å¿¡ /proc/sys ¸¦ »ç¿ëÇضó.
ÀÌ¿ëÇÒ¼ö ÀÖ´Â ¸ðµç °´Ã¼µéÀÌ ¹®¼­È­ µÇ¾î ÀÖÁö´Â ¾Ê´Ù.
¾ÆÁ÷Àº /proc/sys/kernel/ostype¿¡ ¾²±â¸¦ ÇÏ¿© OS¸¦ º¯°æÇϴ°ÍÀº °¡´ÉÇÏÁö ¾Ê´Ù.  

°ü·Ã Ç׸ñ

proc(5)  

¿ªÀÚ

Á¤°­ÈÆ <skyeyes@soback.kornet.net>, 2000³â 7¿ù 8ÀÏ


 

Index

À̸§
»ç¿ë¹ý
¼³¸í
¿¹Á¦
¹Ýȯ°ª
¿¡·¯
ȣȯ
¹ö±×
°ü·Ã Ç׸ñ
¿ªÀÚ

This document was created by man2html, using the manual pages.
Time: 08:07:00 GMT, March 25, 2004