Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<unistd.h>
- #include<stdlib.h>
- #include<fcntl.h>
- #include<ctype.h>
- #include<sys/types.h>
- #include<sys/stat.h>
- int main(int argc, char *args[])
- {
- int pipesDescriptors1[2];
- int pipesDescriptors2[2];
- int child1, child2, child3;
- int fileDescriptor;
- int fileDescriptorCount;
- int readFile;
- int readFileCount;
- int lowerLetters = 0;
- char charRead;
- if ( ( pipe(pipesDescriptors1)) < 0 )
- {
- printf("Eroare la teava 1");
- exit(0);
- }
- if ( ( pipe(pipesDescriptors2)) < 0 )
- {
- printf("Eroare la teava 2");
- exit(0);
- }
- if ( ( child1 = fork()) < 0 )
- {
- printf("Eroare la fork");
- exit(0);
- }
- if ( (fileDescriptor = open (args[1], O_RDONLY)) < 0 )
- {
- printf("Can't open file for reading");
- exit(0);
- }
- if ( child1 == 0 ) //codul fiului 1
- {
- close(pipesDescriptors2[0]);
- close(pipesDescriptors2[1]);
- close(pipesDescriptors1[0]); //inchid capatul de citire.
- while ( (readFile = read(fileDescriptor, &charRead, sizeof(charRead))) > 0)
- {
- if ( isupper(charRead) || islower(charRead) )
- {
- if ( (write(pipesDescriptors1[1],&charRead, readFile)) > 0 )
- {
- printf("Error writing to pipe");
- exit(0);
- }
- }
- }
- close(pipesDescriptors1[1]); //inchid capatul de scriere
- exit(0);
- }
- else
- {
- if ( (readFileCount = open (args[1], O_RDONLY) ) < 0 )
- {
- printf("Error reading to file!");
- exit(0);
- }
- while ( (fileDescriptorCount = read(fileDescriptor, &charRead, sizeof(charRead))) > 0)
- {
- if ( islower(charRead))
- {
- lowerLetters++;
- }
- }
- exit(lowerLetters);
- }
- if ( (child2 = fork()) < 0 ) //codul fiului 2
- {
- close(pipesDescriptors1[1]); //inchid teava 1 pentru scriere.
- close(pipesDescriptors2[0]); // inchid teava 2 pentru citire
- while ( (read (pipesDescriptors1[0], &charRead, sizeof(charRead))) > 0 )
- {
- //if (
- }
- printf("Eroare la fork 2");
- exit(0);
- }
- if ( child2 == 0 )
- {
- exit(0);
- }
- if ( (child3 = fork()) < 0 )
- {
- printf("Eroare la fork3");
- exit(0);
- }
- if ( child3 == 0 ) //codul fiului 3
- {
- //
- exit(0);
- }
- }
- #include<stdio.h>
- #include<unistd.h>
- #include<stdlib.h>
- #include<fcntl.h>
- #include<ctype.h>
- #include<sys/types.h>
- #include<sys/stat.h>
- int main (int argc, char *args[])
- {
- int teava1[2];
- int teava2[2];
- int pid1, pid2, pid3;
- int pid_a, int pid_b;
- if ( (pipe (teava1)) < 0 )
- {
- printf("Eroare la deschiderea tevii 1");
- exit(0);
- }
- if ( (pipe (teava2)) < 0 )
- {
- printf("Eroare la deschidrea tevii 2");
- exit(0);
- }
- if ( (pid1 = fork()) < 0 )
- {
- printf("Eroare la fork in copilul 1");
- exit(0);
- }
- if ( pid1 == 0 )
- {
- exit(0);
- }
- if ( (pid2 = fork()) < 0 )
- {
- printf("Eroare fork in copilul 2");
- exit(0);
- }
- if ( pid2 == 0 )
- {
- exit(0);
- }
- if ( (pid3 = fork()) < 0 )
- {
- printf("Eroare fork in copilul 3");
- exit(0);
- }
- if ( pid3 == 0 )
- {
- exit(0);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement