LINUX.ORG.RU

Почему не старттует второй бинарник в execlp.


0

0

#include "ldm.h"

#include <kapplication.h>
#include <kaboutdata.h>
#include <kcmdlineargs.h>
#include <klocale.h>

#include <sys/types.h>
#include <unistd.h>

#define XINIT "/usr/X11R6/bin/xinit"
#define LDM "/usr/bin/ldm"

static const char description[] =
I18N_NOOP("A KDE Login Application");

static const char version[] = "0.0.1";

static KCmdLineOptions options[] =
{
// { "+[URL]", I18N_NOOP( "Document to open." ), 0 },
KCmdLineLastOption
};

int main(int argc, char **argv)
{
if ( argc > 1 )
{
KAboutData about ("ldm", I18N_NOOP("ldm"), version, description,
KAboutData::License_GPL, "(C) 2004 Alexandr Belanov", 0, 0, "cyclon@land.ru");
about.addAuthor ( "Alexandr Belanov", 0, "cyclon@land.ru" );
KCmdLineArgs::init(argc, argv, &about);
KCmdLineArgs::addCmdLineOptions( options );
KApplication app;

ldm *login = 0;

KCmdLineArgs *args = KCmdLineArgs::parsedArgs();

login = new ldm();
app.setMainWidget( login );
login->show();

args->clear();

return app.exec ( );
}
else
{
pid_t pid = fork();
if ( pid == 0 )
{
pid_t pid = fork();
if ( pid == 0 )
{
execlp ( XINIT, XINIT, LDM, "x" );
}
}
}
}

Вообщем в приведённом выше коде не запускается моя тулза, т.е. LDM (/usr/bin/ldm), при этом XINIT стартует а прога нет. Прога состоит только из одного пустого Widget'a т.е. написана на QT. Может кто подскажет где ошибка.

Заранее спасибо!!!

★★★★★

NULL в конце списка аргументов в execlp забыл.

anonymous
()

> Может кто подскажет где ошибка.

Про ошибку в вызове execlp тебе уже сказали, а главная твоя ошибка в том что ты попытался использовать функцию не прочтя перед этим man.

asso_w
()
Ответ на: комментарий от asso_w

Ман чиатал, но видимо плохо/быстро - посему, признаю свою невнимательность.

cyclon ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.