#include #include #include #include #include #include #define DEVICE "/dev/ttyS0" int main() { int fd; int arg, lstat; fd = open( DEVICE, O_RDWR | O_NOCTTY | O_NDELAY); if( fd < 0 ){ perror( "device open" ); exit(1); } while(1){ arg = TIOCM_CTS|TIOCM_CD; /* 監視する入力信号の指定 */ ioctl( fd, TIOCMIWAIT, arg ); /* CTS または CD(DCD) が変化する */ /* まで、ioctl() から帰ってこない */ ioctl( fd, TIOCMGET, &lstat ); if( lstat & TIOCM_CTS ){ printf( " CTS on " ); }else{ printf( " CTS off " ); } if( lstat & TIOCM_CD ){ printf( " DCD on" ); }else{ printf( " DCD off" ); } printf( "\n" ); fflush(stdout); } return 0; }