trying to sysctl(3) a char value

Dan Nelson dnelson at allantgroup.com
Wed Nov 24 18:57:03 UTC 2010


In the last episode (Nov 24), David DEMELIER said:
> 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 at Melon ~ $ sysctl hw.acpi.video.lcd0.brightness
> hw.acpi.video.lcd0.brightness: 90
> markand at 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

Looking at the source, that sysctl definition is CTLTYPE_OPAQUE with a
display format of "I", which means that it's just an array of integers. 
Print each one in a loop.  You can also take a look at
/usr/src/sbin/sysctl/sysctl.c to see how it printed the numbers.

-- 
	Dan Nelson
	dnelson at allantgroup.com


More information about the freebsd-questions mailing list