Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

Re: lug-bg: Задачка Закачка: Bash


  • Subject: Re: lug-bg: Задачка Закачка: Bash
  • From: Aleksandar Valchev <hippo@xxxxxxxxxxxxxxxxxx>
  • Date: Tue, 30 Nov 2004 12:06:54 +0200
  • Organization: Efficient Software Systems

Да, 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
============================================================================



 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.