Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > почему программа не демонизируется?


Автор: phpsc 9.1.2011, 23:36
Код

int main(void){

// create process
pid_t parpid,sid;
parpid = fork();    
if (parpid<0) {exit(1);}
        else if (parpid<0) {exit(0);}
umask(0);
if (sid<0) { exit(1);}

close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);

// CONNECT TO MYSQL
mysql_init(&mysql);
connection = mysql_real_connect(&mysql,"localhost","root","pass","service",0,0,0);
 if (connection == NULL) { printf(mysql_error(&mysql),"\n"); return 1; }

// PROGRAMM - DAEMON
while(1){
create_folders();    
sleep(5);
};

//UNCONNECT FROM MYSQL
mysql_free_result(result);
mysql_close(connection);

return 0;
}

Автор: svlary 10.1.2011, 07:16
  Ваш вопрос - в чем заключается ? 
Понять код, который Вы написали :
Цитата(phpsc @  9.1.2011,  23:36 Найти цитируемый пост)
parpid = fork();    
if (parpid<0) {exit(1);}
        else if (parpid<0) {exit(0);}
umask(0);
if (sid<0) { exit(1);}

довольно затруднительно...
  • Зачем два раза проверяете условие parpid<0 и ни разу parpid>0  и iparpid==0 ?
  • Где устанавливается значение переменной sid ?
  • Ну и так далее... Как мне кажется, текст - понадерганные кусочки из разных источников
Посмотрите, для начала, хотя бы вот эту статью : http://skif.bas-net.by/bsuir/book_prog/node7.html
Конкретно, про написание ДЕМОНОВ, очень подробно изложено тут : http://linuxportal.ru/entry.php/2361_0_3_0_C/

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)