Date: Wed, 24 Nov 2010 18:47:08 +0100 From: David DEMELIER <demelier.david@gmail.com> To: FreeBSD Questions <freebsd-questions@freebsd.org> Subject: trying to sysctl(3) a char value Message-ID: <AANLkTikBXRoDHmGnQLoi4MEoBv09J8vbjG=6wriRxqg%2B@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
Hello, Since I cannot adjust the brightness on my HP Probook because it sucks I'm writing a small script that can be use instead. I need to sysctl the following sysctl variables : hw.acpi.video.lcd0.brightness hw.acpi.video.lcd0.levels the -brightness one is easy since it's an integer, but the levels is possibly a char : markand@Melon ~ $ sysctl hw.acpi.video.lcd0.brightness hw.acpi.video.lcd0.brightness: 90 markand@Melon ~ $ sysctl hw.acpi.video.lcd0.levels hw.acpi.video.lcd0.levels: 100 50 0 5 10 15 20 25 30 33 36 40 43 46 50 55 60 65 70 75 80 83 86 90 93 96 100 How can I store the content of hw.acpi.video.lcd0.levels? This small code doesn't work : #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/sysctl.h> int main(int argc, char *argv[]) { char buf[128]; size_t len; len = sizeof (buf); if (sysctlbyname("hw.acpi.video.lcd0.levels", &buf, &len, NULL, 0) == -1) { perror("sysctl"); return -1; } printf("levels = %s\n", buf); } markand@Melon ~ $ ./a.out levels = d Kind regards, -- Demelier David
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTikBXRoDHmGnQLoi4MEoBv09J8vbjG=6wriRxqg%2B>