tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

return value of sysctlbyname(3)


I have a simple question: what is the return value of the function

The manual page sysctlbyname(3) states:

     If the call to sysctl is successful, the number of bytes copied out is
     returned.  Otherwise -1 is returned and errno is set appropriately."

So the following test program should print "... returns 4", but it prints
"kern_argmax=262144 size=4 sysctlbyname() returns 0":

#include <sys/param.h>
#include <sys/sysctl.h>
#include <stdio.h>

int main()
    unsigned kern_argmax ;
    size_t size = sizeof(kern_argmax) ;
    int res ;

    res = sysctlbyname("kern.argmax", &kern_argmax, &size, NULL, 0) ;

    printf("kern_argmax=%d size=%d sysctlbyname() returns %d\n", kern_argmax, 
size, res) ;
    return 0 ;

Ilya Dogolazky

Home | Main Index | Thread Index | Old Index