#include #include #include #include #include #include #include #define MAX_FILENAME 20 #define MAX_BUFF 1024 #define FIFO_NAME "/tmp/Vpim_messenger" char filename[MAX_FILENAME]; int main() { struct timeb tp; int outfile , fifo ,bytes_read,bytes_written, locked=1; char buff[MAX_BUFF]; char message[MAX_BUFF] ; ftime( &tp); sprintf(filename,"/tmp/%d.%d",tp.time,getpid()); sprintf(message,"INFILE: %s",filename); outfile = open(filename,O_WRONLY|O_CREAT,S_IRWXU|S_IRWXO); while((bytes_read = read(STDIN_FILENO,buff,sizeof(buff))>0)) { if((bytes_written = write(outfile , buff ,bytes_read))!=bytes_read) { fprintf(stderr,"write error"); exit(1); } } fifo = open(FIFO_NAME,O_WRONLY,S_IWUSR); while(locked) { if(!(lockf(fifo,F_TEST,0))) { lockf(fifo,F_LOCK,0); locked = 0; } } if(bytes_written = write(fifo , message , sizeof(message))!= sizeof(message)) { fprintf(stderr,"write error"); exit(1); } return 1; }