Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <sys/types.h>
- #include <sys/wait.h>
- #include <unistd.h>
- #include <stdlib.h>
- #include <string.h>
- #define ELEMENTE 10
- int main(int argc, char* argv[])
- {
- int p[2];
- int pid;
- int i;
- if( -1 == pipe(p) )
- {
- perror("failed to create pipes");
- return -1;
- }
- pid = fork();
- if(pid == -1)
- {
- perror("failed to create child process");
- return -1;
- }
- if(pid)
- {
- int suma = 0;
- char c;
- close(p[1]);
- while (read(p[0], c, 1))
- suma += c;
- printf("suma caracterelor cifra din fisier este: %d\n", suma);
- close(p[0]);
- }
- else
- {
- int file = fopen("input.txt", "r");
- int size;
- char *buffer;
- close(p[0]);
- fseek(file, 0, SEEK_END);
- size = ftell(file);
- buffer = (char*)malloc(size+1);
- memset(buffer, 0, size+1);
- fread(buffer, 1, size, file);
- fclose(file);
- for (i=0;buffer[i]!=0;i++)
- {
- char c = buffer[i];
- if ((c >= '0') && (c <= '9'))
- {
- c = c - '0';
- write(p[1], &c, 1);
- }
- }
- free(buffer);
- close(p[1]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement