shouhuled.c

来自「守护进程」· C语言 代码 · 共 68 行

C
68
字号
#include <stdio.h>#include<stdlib.h>#include<sys/types.h>#include<unistd.h>#include <linux/fcntl.h>#define LED_NUM         4                                                                                #define LED_OFF         0#define LED_ON          1#define LED_ON_ALL      0xF#define LED_OFF_ALL     0x0void init_daemon(void){  int pid;  int i;  if(pid=fork())    		exit(0);//父进程退出  else if(pid< 0)    		exit(1);  setsid();  chdir("");  umask(0);  if(pid=fork())    	exit(0);  else if(pid< 0)   		 exit(1);  for(i=0;i< 5;++i)    		close(i); return;}int main(int argc, char ** argv){	int i, j, wval, rval, fd;	static char *driver = "/dev/led/0";	init_daemon();	fd = open(driver, O_RDWR);  while(1)  {	sleep(5);	for(i=0; i<6; i++)	{		if(i%2)		{			wval = LED_OFF_ALL;			write(fd, &wval, 1);			read(fd, &rval, 1);			printf("Turn off all LEDs, readback val = 0x%02X\n", rval&0xF);		}		else		{			wval = LED_ON_ALL;			write(fd, &wval, 1);			read(fd, &rval, 1);			printf("Turn on all LEDs, readback val = 0x%02X\n", rval&0xF);		}					/* delay 1s */		sleep(1);	}  }  	close(fd);	return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?