Difference between revisions of "LU-LSP-b11:L12"
(New page: == PD#12: Procesi un starprocesu komunikācija == === Uzdevums === Dota programma, kura saskaita divus skaitļus. Programma ielasa datus no stdin, izvada tos uz stdout. Uzdevums: noprogr...) |
|||
Line 28: | Line 28: | ||
* Izmantot funkciju ''pipe()'' starpprocesu komunikācijai. (Cik reižu tā būs jāsauc?) |
* Izmantot funkciju ''pipe()'' starpprocesu komunikācijai. (Cik reižu tā būs jāsauc?) |
||
* Aizvērt ar ''close()'' tos ar ''pipe()'' iegūtos failu deskriptorus, kuri nav vajadzīgi, pirms pārējo izmantošanas. |
* Aizvērt ar ''close()'' tos ar ''pipe()'' iegūtos failu deskriptorus, kuri nav vajadzīgi, pirms pārējo izmantošanas. |
||
=== Iesūtīšana === |
|||
Iesūtīt otrās programmas C kodu uz kursa asistenta e-pastu. Subject un faila nosaukums parastais. |
Latest revision as of 14:13, 6 December 2011
PD#12: Procesi un starprocesu komunikācija
Uzdevums
Dota programma, kura saskaita divus skaitļus. Programma ielasa datus no stdin, izvada tos uz stdout. Uzdevums: noprogrammēt otru programmu, kas izmanoto šo pirmo saskaitīšanas funkcijas realizācijai. (Testa piemēriem nav obligāti jātiek ievadītiem no konsoles, tos var iekļaut otrās programmas C kodā.)
Pirmās programmas kods:
#include <stdio.h> int main(void) { int i1, i2, sum; fscanf(stdin, "%d %d", &i1, &i2); sum = i1 + i2; fprintf(stdout, "%d\n", sum); fflush(stdout); return 0; }
Doto kodu nevajag mainīt, izņemot, ja tas palīdz atkļūdošanas vajadzībām.
Padomi
- Izmantot funkcijas fork() un exec() dotās programmas palaišanai.
- Izmantot funkciju pipe() starpprocesu komunikācijai. (Cik reižu tā būs jāsauc?)
- Aizvērt ar close() tos ar pipe() iegūtos failu deskriptorus, kuri nav vajadzīgi, pirms pārējo izmantošanas.
Iesūtīšana
Iesūtīt otrās programmas C kodu uz kursa asistenta e-pastu. Subject un faila nosaukums parastais.