/*this is write by Ralbatr at 2012/12/16*/ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/ioctl.h> int main(int argc,char **argv) { /*argc参数个数,包括程序名称,(即argv[0]) argv真正的参数*/ int on; int led_no; int fd; /* 检查led 控制的两个参数,如果没有参数输入则退出。*/ if(argc!=3||sscanf(argv[1],"%d",&led_no)!=1||sscanf(argv[2],"%d",&on)!=1||on<0||on>1||led_no<0||led_no>3) { fprintf(stderr, "Usage:leds led_no 0|1\n" ); exit(1); } /*打开/dev/leds 设备文件*/ fd=open("/dev/leds0",0); if(fd<0) { fd=open("/dev/leds",0); } if(fd<0) { perror("open device leds"); exit(1); } /*通过系统调用ioctl 和输入的参数控制led*/ ioctl(fd, on, led_no); /*关闭设备句柄*/ close(fd); return 0; } /****************************************************************************************** 用法:name led的编号 0|1开关 注意:运行这个程序之前应该关闭图形界面的LEDS程序,即Stop led-player,然后再运行这个程序! ********************************************************************************************/