ÐÐ, exec-Ð ÐÑÐÐÐÐÐÐ ÐÑÐÑÑÐÑÐÑÑÐ. ÐÐÐÑÑÐ exec
ÑÐÐÐÐÑ system(). ÐÑÑ system() ÐÐÐ
ÐÑÑÐÐ ÐÐ-ÐÐÐÑÐ, ÐÐÐÐÑÐ ÐÐ ÐÐ ÑÐ ÑÐÑÑÐÑÑÐÑÐÐ
PC-ÑÐ (ÐÐÑÐ ÑÐ ÐÐÐ ÐÐ ÐÑÐÐÐÐÐ, ÑÐ
ÐÑÐÐ ÐÐÐÐÐÐÐ limits). ÐÐÑÐÑ ÑÐ, ÑÐ Ð ÐÐ-ÐÐÐÑÐ ÐÐ
ÑÐ ÐÐÐÑÑ ÑÐÐÐÐÐÐÑÐ SIGKILL,
SIGSTOP (ÐÐ ÐÐ ÐÐÐÐ ÐÐ ÑÐ ÑÐÑÐ ÐÐÐÑÐÐÐÐÐÐÑÐ,
ÑÑÐÐ kill), ÐÐ ÑÑÐÐ ÑÐÑÑÐÐÐÐÑÐ
ÐÐÐÐÐÐÐÐÐ signal(), ÐÐ ÑÑÐÐÐ. Ð ÐÐÐ page ÐÐ signal()
ÐÐÑÐ, ÑÐ ÐÐÐÐ ÐÐ
ÐÐÐÐÑÐÑÐÑ ÐÐÐ ÐÐ ÑÐÐÐÐÑ ÐÑÐÑÐÐ ÑÐÐÐÐÐ
ÐÐÐÐÑÑÐÐÐÐ ÐÐ SIGKILL Ð SIGSTOP, ÐÐÑÐ
ÑÑÑÐÑÐ ÑÐ ÐÑÐÐÑÑ Ð ÐÐ sigaction (ÐÐÐÐÐ ÐÐ Linux :) ).
ÐÐ ÐÐÑÐÑ, ÑÐ ÑÑÑÐÐÐ ÐÐÑÐ ÐÐ ÐÐÑÐÑ Ð buffer-a ÐÐ
ÐÐ ÐÐeÐÐ ÐÐÐÐÑ. ÐÐ ÑÑÑÐÐÐÐÐ
malloc() ÐÐ ÐÐÐÐÐÑ ÐÐÐÐÑ Ð ÑÑ ÑÐ ÐÑÑÐÐÐ
ÐÐÐÐÐÐÐÐ, ÐÐÐ ÐÐÐÑÐÐÐÐ ÐÐÐÐ ÑÐ
ÐÐÐÐÑÐÐ ÐÐÑÐ Ð ÐÐÑ ÐÐÐ ÐÐ :). ÐÐÐÑÐ Ð, ÑÐ ÐÐ ÑÐ
ÐÑÐÐÐÐÐÐÐÐÐ :).
ÐÐÐ ÐÑÐÐÐ ÐÑÐÐÐÐ ÑÐÐÐ ÐÑÐÐÐÐÐ, ÐÐÐÐ ÐÐ
ÑÐÐÐÐÐÐ ÑÐÐÑÐÑÐÑÐ, ÐÐÑÐÑÐ ÐÐ Ð
ÐÐÑÐÑÐÑÐÐ.
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <stdio.h>
void duplicate(char *prog)
{
pid_t p;
char *cmd;
char *buffer;
p = fork();
cmd = (char *) malloc(strlen(prog) + 3); // ÑÐÐÐ ÐÐ ÑÐ
ÐÑÐÐÐÐÐÐÐÐÐ
strcpy(cmd, prog); strcat(cmd, " &");
// ÐÐÐÐ ÑÐ ÐÑÐÐÐ ÐÐÐÐÑÐ.
// buffer = (char *) malloc(1024);
if (0 == p)
{
//execl(cmd, NULL);
system(cmd);
}
else
{
duplicate(prog);
}
}
int main(int argc, char *argv[])
{
duplicate(argv[0]);
return 0;
}
============================================================================
A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers).
http://www.linux-bulgaria.org - Hosted by Internet Group Ltd. - Stara Zagora
To unsubscribe: http://www.linux-bulgaria.org/public/mail_list.html
============================================================================