LU-LSP-b11:L12

From DiLab
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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.