Difference between revisions of "LU-LSP-b13:L10"

From DiLab
Jump to: navigation, search
(New page: == PD#10: Starprocesu komunikācija == === Uzdevums === Realizēt komunikāciju starp ''parent'' un ''child'' progammām ar ''socket'' palīdzību. Dota programma, kura saskaita divus s...)
 
Line 5: Line 5:
Realizēt komunikāciju starp ''parent'' un ''child'' progammām ar ''socket'' palīdzību.
Realizēt komunikāciju starp ''parent'' un ''child'' progammām ar ''socket'' palīdzību.


Parent process padod child procesam ASCII rindiņu, kura satur divus skaitļus.
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ā.)


Child process rindiņu nolasa (piemēram, ar scanf funkciju), saskaita skatļus, izvada rezultātu (kā ASCII rindiņu) atpakaļ parentam.
Koda šablons

Koda šablons:
<pre>
<pre>
#include <sys/types.h>
#include <sys/types.h>

Revision as of 17:32, 26 November 2013

PD#10: Starprocesu komunikācija

Uzdevums

Realizēt komunikāciju starp parent un child progammām ar socket palīdzību.

Parent process padod child procesam ASCII rindiņu, kura satur divus skaitļus.

Child process rindiņu nolasa (piemēram, ar scanf funkciju), saskaita skatļus, izvada rezultātu (kā ASCII rindiņu) atpakaļ parentam.

Koda šablons:

#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>

#include <stdio.h>

int main(void)
{
    int ret = socketpair(AF_UNIX, SOCK_STREAM, 0, sock);
    if (ret) {
	perror("socketpair");
	return 1;
    }


    // fork

    // in parent code: write to socket, wait for reply, read it, and output it


    // in child code: read from socket, process arguments, write reply, exit

    return 0;
}

Padomi

  • Izmantot funkciju fork().
  • Izmantot funkciju scoketpair().


Iesūtīšana

Iesūtīt programmas C kodu uz kursa asistenta e-pastu.