Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <fcntl.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <sys/stat.h>
- #include <sys/types.h>
- #include <errno.h>
- #include <signal.h>
- #include <sys/wait.h>
- #include <string.h>
- int main(int argc , char* argv []){
- int pdesk, pklient, dlugoscZapytania,i;
- const int dlugoscNazwyKolejki = 11;
- char* nazwaKolejki = "client_fifo";
- char zapytanie[512];
- mkfifo(nazwaKolejki, 0600);
- switch(fork()){
- case -1:
- perror("Fork Error");
- exit(1);
- case 0:
- close(1);
- pdesk = open("server_fifo", O_WRONLY);
- if (pdesk == -1){
- perror (" Otwarcie potoku do zapisu ");
- exit (1);
- }
- else if (pdesk != 1){
- fprintf(stderr , "Niewlasciwy deskryptor do zapisu\n");
- exit (1);
- }
- if(argc > 0) {
- strcpy(zapytanie, argv[1]);
- } else {
- strcpy(zapytanie, "Zbyt malo argumetnow");
- }
- for(i = 2; i < argc; i++) {
- strcat(zapytanie, " ");
- strcat(zapytanie, argv[i]);
- }
- dlugoscZapytania = strlen(zapytanie);
- write(pdesk, &dlugoscNazwyKolejki, sizeof(dlugoscNazwyKolejki));
- write(pdesk, nazwaKolejki, dlugoscNazwyKolejki);
- write(pdesk, &dlugoscZapytania, sizeof(int));
- write(pdesk, zapytanie, dlugoscZapytania);
- //exit(1);
- default: {
- close(0);
- pklient = open(nazwaKolejki, O_RDONLY);
- if (pklient == -1){
- perror("Otwarcie potoku do odczytu");
- exit(1);
- }
- else if (pklient != 0){
- fprintf(stderr , "Niewlasciwy deskryptor do odczytu\n");
- exit (1);
- }
- execlp("tr", "tr", "a-z", "a-z", NULL);
- }
- wait(NULL);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement