Powrót do listy plików
powielacz.c
//POWIELACZ
#include "powielacz.h"
int main(int argc, char *argv[])
{
//sprawdzenie ilości argumentów.
if (argc != 3)
{
printf ("zła liczba parametrów");
printf ("\n wywoływanie: \n $ powielacz nazwa_programu liczba_powieleń\n");
//printf ("aby usyskać instrukcję używania wywołaj program z parametrem --help\n");
exit (0);
}
int s, i, j ;
key_t key;
pid_t pid=0;
char str_s[ 100 ];
//jakies operacje
key = ftok ("/etc/fstab", 666);
s = init (key, 1);
sprintf( str_s, "%d", s );
printf("[III] identyfikator semafora [%i]=[%s]",s,str_s);
//sleep(2);
printf ("\n[iii] wartość semafora [%i]\t czekających [%i]",sem_val(s),sem_ile(s));
//zmienna key została wcześniej zainicjowana
j=atoi(argv[2]);
for (i = 1; i <= j; i++)
{
switch (pid=fork ())
{
case -1:
perror ("[eee] fork error");
exit (-1);
case 0:
sleep(2);
// printf("{III} nastąpi próba utworzenia procesu");
execl(argv[1],argv[1],&str_s,NULL);
perror ("execl error");
exit (-1);
default:
;
}
if(i==j){waitpid (pid, NULL, 0);}
}
sem_rm(s);
return 0;
}
składania pokolorowana przez
Code2HTML, v. 0.9.1
Materiały z Systemów Operacyjnych udostępnione zostały na zasadach licencji GPL w wersji 2.