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>
