#include #include #include #include //#include //#include #define M (4) int main(int argc,char **argv) { //int sock; //struct sockaddr_in addr; static char buf[16+1]; static char buf2[3600]; int n,i; int j; int k; int ii; static char fn[64],dn1[64],dn2[64],s[64],ss[64]; FILE *fp; //int port; int nn; int n0; // argv[1]: path for file save //sock = socket(AF_INET,SOCK_DGRAM,0); //addr.sin_family = AF_INET; //addr.sin_port = htons(port); //addr.sin_addr.s_addr = INADDR_ANY; //bind(sock,(struct sockaddr *)&addr,sizeof(addr)); n0=-1; for (ii=0;;ii++) { //printf("%d\n",ii); //memset(buf,0,sizeof(buf)); sprintf(s,"date +%%Y%%m%%d%%H%%M%%S%3N -d '0.5 second ago'"); //system(s); //sprintf(s,"date +%%Y%%m%%d%%H%%M%%S%3N"); //system(s); fp=popen(s,"r"); fgets(fn,17,fp); pclose(fp); nn=((fn[13]-'0')*10+(fn[14]-'0'))/5; if (nn!=n0) { if (nn%2) {fn[14]='5';fn[15]='0';} else {fn[14]='0';fn[15]='0';} //printf("%d %s\n",nn,fn); for (i=0;i< 8;i++) dn1[i]=fn[i];dn1[ 8]=0; for (i=0;i<11;i++) dn2[i]=fn[i];dn2[11]=0; sprintf(s,"gunzip < %s/%s/%s/%s.gz",argv[1],dn1,dn2,fn); if (NULL!=(fp=popen(s,"r"))) { fread(buf2,sizeof(buf2),1,fp); fwrite(fn,17,1,stdout); fwrite(buf2,sizeof(buf2),1,stdout); fflush(stdout); pclose(fp); } n0=nn; } usleep(1000); } //close(sock); exit(0); }