#include "../inc/base.c" /* Datas ################################################################# ####################################################################### */ typedef void ( *sighandler_t )(int); sighandler_t sighandler_oldterm = SIG_ERR; /* Sighandler ############################################################ ####################################################################### */ void sigrestore( void ) { if( sighandler_oldterm != SIG_ERR ) { signal( SIGTERM, sighandler_oldterm); sighandler_oldterm = SIG_ERR; } } void sigterminate( int sig ) { if( sig != SIGTERM ) { return; } //control-c, shutdown from system, or kill -15 deinitBase(); sigrestore(); } int sigset( void ) { sigrestore(); sighandler_oldterm = signal(SIGTERM,sigterminate); if(sighandler_oldterm == SIG_ERR) { //printf("\nCannot set signalhandler\n"); return(0); } return(1); } /* The main loop, and startup ### ######################################### ####################################################################### */ int main(int argc, char * argv[]) { int ct = 0; while( ct < argc ){ ct++; } if(! sigset() ){ fprintf(stderr,"\nCannot install signalhandler.\n"); exit( EXIT_FAILURE ); } if( ! initBase( 0, 0, 0 ) ){ sigrestore(); return(0); } fprintf(stdout,"start\n"); ct = 0; while(1){ fprintf(stdout,"\nwrite %d\n",ct); base_write_cs0( 0x02,0 ); sleep(1); ct++; } fprintf(stdout,"end\n"); deinitBase(); sigrestore(); return(0); }