Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <fcntl.h>
- #include <unistd.h>
- #include <time.h>
- #include <sys/ipc.h>
- #include <sys/msg.h>
- #define NAZWA "/tmp/fifooo"
- struct msgBuf{
- int mtype;
- time_t czas;
- };
- int main()
- {
- if(fork() > 0)
- {
- int fifores = mkfifo(NAZWA,0777);
- int fd;
- if(fork() > 0)
- {
- struct tm czas;
- time_t czassek;
- char tekst[21];
- scanf("%s", &tekst);
- strptime(tekst, "%d.%m.%Y/%H:%M:%S", &czas);
- strftime(tekst, 21, "%s", &czas);
- fd = open(NAZWA,O_WRONLY);
- write(fd,tekst, sizeof(tekst));
- close(fd);
- }
- else
- {
- struct tm wczas;
- char buffer[20];
- time_t czas;
- int read_fd = open(NAZWA,O_RDONLY);
- read(read_fd, buffer, 20);
- close(read_fd);
- strptime(buffer, "%s", &wczas);
- czas = mktime(&wczas);
- key_t klucz;
- int msgID;
- if((klucz = ftok(".", 'A')) == -1)
- {
- printf("Blad ftok (potomny1)\n");
- exit(1);
- }
- msgID = msgget(klucz, IPC_CREAT|0666);
- if (msgID == -1)
- {
- printf("Blad KK (potomny1)\n");
- exit(1);
- }
- struct msgBuf komunikat;
- komunikat.mtype = 1;
- komunikat.czas = czas;
- msgsnd(msgID, &komunikat, sizeof(komunikat.czas), 0);
- }
- }
- else
- {
- execl("pr2", "pr2", NULL);
- }
- wait(NULL);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement