#include #include #include #include #include void signal_handler(int signum){ pthread_exit(NULL); } void *readFile(void * ptr){ signal(SIGTERM, signal_handler); int fd; char buffer; fd = open("/dev/ttyS1", O_RDONLY); while(true){ read(fd, &buffer, 1); printf("%c", buffer); fflush(stdout); } close(fd); pthread_exit(NULL); } int main(int argc, char** argv){ pthread_t thread; pthread_create(&thread, NULL, &readFile, NULL); sleep(10); pthread_kill(thread, SIGTERM); pthread_join(thread, NULL); }