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

Re: права для /sys/class



On Sat, Sep 26, 2009 at 05:07:55PM +0200, yuri.nefedov@gmail.com wrote:
>  Можно, например, маленькую программку на С написать
>  (в приложении). Компилируете, рутом копируете в
>  /usr/local/bin и устанавливаете s-бит. Вроде всё.
>
> #include <stdlib.h>
> #include <stdio.h>
> #include <errno.h>
> #include <string.h>
> 
> static void usage()
> {
> 	fprintf (stderr, "usage: mail_led [on/off]\n");
> 	fprintf (stderr, "       switch on/off mail_led on asus-laptop\n");
> 	exit (1);
> }
> 
> int main(int argc, char* argv[])
> {
>   const char* mail_led="/sys/class/leds/asus::mail/brightness";
>   int status = 0;
>   
>   if (argc == 1) usage();
> 
>   if( strcmp(argv[1],"off") == 0 ) {
>     status = 0;
>   } else if( strcmp(argv[1],"on") == 0 ) {
>     status = 1;
>   } else {
>     usage();
>   }
>   
>   FILE *f=fopen(mail_led,"r+");
>   if (!f) {
>      fprintf (stderr, 
>              "Error opening file: %s\n",
>              strerror(errno));
>      return 1;
>   }
> 
>   if( status == 0 )
>     fprintf(f,"0");
>   else
>     fprintf(f,"1");
> 
>   fclose(f);
>   
>   return 0;
> }

Юра, имхо, туда значение яркости пишется, а не 0/1, т.е. число от 0 до
содержимого max_brightness (в той же поддиректории). Соответственно, с
"r+" ты тоже начудил, пояснять не буду, сам сообразишь почему =)

-- 
Stanislav


Reply to: