[LUGOS-PROG] Skripta

Pero pero13667 at yahoo.com
Tue Feb 5 13:18:36 CET 2002


Hvala!
Medtem se v Cju napisal deamon, ki dela isto.
ce koga zanima je koda spodaj.

lp,
Pero
On Tue, 2002-02-05 at 09:04, Matija Grabnar wrote: 
> Se pravi nekaj takega:
>  #!/usr/bin/perl -w
> open(IN,"</proc/acpi/event");
> while (<IN>) {
>     system("/sbin/halt") if ($_ eq 'power 00000080 00000000\n');
> }



#include <stdio.h>

#define EVENT_NAME "button"
#define BUTTON_NAME "power"
#define BUTTON_NUMBER 0x80
#define EXEC "echo Jp Jp"

main(int argc, char *argv[])
{
	FILE *fd;
	int i,j,k;
	char temp[100],temp2[100];
	char *exec=0;
	char deamon=0;
	fd=fopen("/proc/acpi/event","r");
	for(i=1;i<argc;i++)
	{
		if(!strcmp(argv[i],"--deamon"))
			deamon=1;
		if(!strcmp(argv[i],"-e") && (i+1)<argc)
			exec=argv[i+1];
	}  
	if(!exec)
		exec=EXEC;
		
	if(!fd)
	{
		perror("Ne morem odpret /proc/acpi/event:");
		return -1;
	}
	
	if(deamon)
	{
		if(k=fork())
		{
			printf("Poduhovljen nacin! pid=%d\n",k);
			return;
		}
		
	}
	while(1&&fd)
	{
		fscanf(fd,"%s %s %x %x",temp,temp2,&i,&j);
		printf("event:%s %s %d %d\n",temp,temp2,i,j);
	
		if(!(strcmp(temp,EVENT_NAME) && strcmp(temp2,BUTTON_NAME)) &&
BUTTON_NUMBER==i)
			system(exec);
	}
}




More information about the lugos-prog mailing list