IceWalkers.com - Linux Software downloads and news
Name : Password :
Linux SoftwareLinux RPMLinux HowtosLink UsAboutAdvertise

sysctl (2)

SYSCTL(2)                  Linux Programmer's Manual                 SYSCTL(2)



NAME
       sysctl - read/write system parameters

SYNOPSIS
       #include<unistd.h>

       #include<linux/unistd.h>

       #include<linux/sysctl.h>

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

       int_sysctl(struct __sysctl_args*args);

DESCRIPTION
       The  _sysctl  call  reads and/or writes kernel parameters. For example,
       the hostname, or the maximum number of open files. The argument has the
       form

       struct __sysctl_args {
               int *name;        /* integer vector describing variable */
               int nlen;         /* length of this vector */
               void *oldval;     /* 0 or address where to store old value */
               size_t *oldlenp;  /* available room for old value,
                                    overwritten by actual size of old value */
               void *newval;     /* 0 or address of new value */
               size_t newlen;    /* size of new value */
       };

       This  call  does  a  search  in a tree structure, possibly resembling a
       directory tree under /proc/sys, and if  the  requested  item  is  found
       calls some appropriate routine to read or modify the value.


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


RETURNVALUE
       Upon successful completion, _sysctl returns 0. Otherwise, a value of -1
       is returned and errno is set to indicate the error.

ERRORS
       ENOTDIR
              name was not found.

       EPERM  No search permission for one of the  encountered  'directories',
              or no read permission where oldval was nonzero, or no write per-
              mission where newval was nonzero.

       EFAULT The invocation asked for the previous value  by  setting  oldval
              non-NULL, but allowed zero room in oldlenp.

CONFORMINGTO
       This  call  is  Linux-specific,  and  should  not  be  used in programs
       intended to be portable.  A sysctl call has been present in Linux since
       version  1.3.57.  It originated in 4.4BSD. Only Linux has the /proc/sys
       mirror, and the object naming schemes differ between Linux and BSD 4.4,
       but the declaration of the sysctl(2) function is the same in both.

BUGS
       The  object names vary between kernel versions.  THIS MAKES THIS SYSTEM
       CALL WORTHLESS FOR APPLICATIONS.  Use the /proc/sys interface  instead.
       Not all available objects are properly documented.
       It  is  not  yet  possible  to  change  operating  system by writing to
       /proc/sys/kernel/ostype.

SEEALSO
       proc(5)



Linux 1.3.85                      1996-04-11                         SYSCTL(2)

_Exitgetsockoptoutwshmat
_exitgettidoutw_pshmctl
_llseekgettimeofdaypauseshmdt
_newselectgetuidpersonalityshmget
_sysctlgttypipeshmop
acceptidlepivot_rootshutdown
accessinbpollsigaction
acctinb_pprctlsigaltstack
adjtimexinlpreadsigblock
afs_syscallinl_pprofsiggetmask
alarminsbpselectsigmask
alloc_hugepagesinslptracesignal
arch_prctlinswpwritesigpause
bdflushintroquotactlsigpending
bindinwreadsigprocmask
breakinw_preaddirsigqueue
brkioctlreadlinksigreturn
cacheflushioctl_listreadvsigsetmask
capgetiopermrebootsigsuspend
capsetioplrecvsigtimedwait
chdiripcrecvfromsigvec
chmodkillrecvmsgsigwaitinfo
chownkillpgrenamesocket
chrootlchownrmdirsocketcall
clonelinksbrksocketpair
closelistensched_get_priority_maxssetmask
connectllseeksched_get_priority_minstat
creatlocksched_getaffinitystatfs
duplseeksched_getparamstime
dup2lstatsched_getschedulerstty
execvemadvisesched_rr_get_intervalswapoff
exitmincoresched_setaffinityswapon
fchdirmkdirsched_setparamsymlink
fchmodmknodsched_setschedulersync
fchownmlocksched_yieldsyscall
fcntlmlockallselectsyscalls
fdatasyncmmapselect_tutsysctl
flockmmap2semctlsysfs
forkmodify_ldtsemgetsysinfo
free_hugepagesmountsemopsyslog
fstatmprotectsendtime
fstatfsmpxsendfiletimes
fsyncmremapsendmsgtkill
ftruncatemsgctlsendtotruncate
futexmsggetsetcontextumask
getcontextmsgopsetdomainnameumount
getdentsmsgrcvsetegidumount2
getdomainnamemsgsndseteuiduname
getdtablesizemsyncsetfsgidundocumented
getegidmunlocksetfsuidunimplemented
geteuidmunlockallsetgidunlink
getgidmunmapsetgroupsuselib
getgroupsnanosleepsethostidustat
gethostidnfsservctlsethostnameutime
gethostnamenicesetitimerutimes
getitimerobsoletesetpgidvfork
getpagesizeoldfstatsetpgrpvhangup
getpeernameoldlstatsetpriorityvm86
getpgidoldoldunamesetregidwait
getpgrpoldstatsetresgidwait3
getpidoldunamesetresuidwait4
getppidopensetreuidwaitpid
getpriorityoutbsetrlimitwrite
getresgidoutb_psetsidwritev
getresuidoutlsetsockopt 
getrlimitoutl_psettimeofday 
getrusageoutsbsetuid 
getsidoutslsetup 


ProFTPD 1.3.3rc1
Secure FTP daemon
PhpMyAdmin 3.2.0.1
Php front-end to MySQL administration
PHP 5.3.0
Server-side, cross-platform, HTML embedded scripting language.
PostgreSQL 8.4.0
Sophisticated Object-Relational DBMS
Battle for Wesnoth 1.7.1
Fantasy Turn-Based Strategy Game
NASM 2.06
NASM is an 80x86 assembler designed for portability
Glade 3.6.7
User interface builder for GTK+ and Gnome
GTK2 2.16.4
GUI Toolkit
Brasero 2.26.3
Application to burn CD/DVD
WebGUI 7.6.29
A fully featured content management system.
Free IT Magazines, White Papers, eBooks, and more !
Oracle Magazine

Contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more.

Vulnerability Management for Dummies

Get all the Facts and See How to Implement a Successful Vulnerability Management Program.

Website Magazine

Has tapped premier talent in the Internet industry for our content and each and every issue will contain practical advice and insights for website owners.

Linux Software Map
Find Linux RPM
Best Rated Linux Software
Most Rated Linux Software
Linux Distributions
Linux Howtos
Linux Software
Linux / IT Resources
Site Resources
Google
Privacy Policy
Contact Us
Submit Software
Advertising info