smd.c revision dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0
1#include <stdio.h> 2#include <string.h> 3#include <fcntl.h> 4#include <errno.h> 5 6int smd_main(int argc, char **argv) 7{ 8 int fd, len, r, port = 0; 9 char devname[32]; 10 argc--; 11 argv++; 12 13 if((argc > 0) && (argv[0][0] == '-')) { 14 port = atoi(argv[0] + 1); 15 argc--; 16 argv++; 17 } 18 19 sprintf(devname,"/dev/smd%d",port); 20 fd = open(devname, O_WRONLY); 21 if(fd < 0) { 22 fprintf(stderr,"failed to open smd0 - %s\n", 23 strerror(errno)); 24 return -1; 25 } 26 while(argc > 0) { 27 len = strlen(argv[0]); 28 r = write(fd, argv[0], len); 29 if(r != len) { 30 fprintf(stderr,"failed to write smd0 (%d) %s\n", 31 r, strerror(errno)); 32 return -1; 33 } 34 argc--; 35 argv++; 36 write(fd, argc ? " " : "\r", 1); 37 } 38 close(fd); 39 return 0; 40} 41