Portál AbcLinuxu, 14. května 2025 01:06

Dotaz: execve - spoustena aplikace nenajde X server

15.11.2003 22:38 drag
execve - spoustena aplikace nenajde X server
Přečteno: 99×
Odpovědět | Admin
Zdravim, z me qt aplikace chci spustit dalsi qt program nejak takto:
  int pid;
  if ( (pid = fork()) < 0)
    cerr << "fork error !!!!!!!!!!!!!!!" << endl;
  else
    if (pid == 0) {        /* child */
      cerr << "executing Twister...";
      if (execve("PROGRAM", NULL, NULL))
        cerr << "ERROR!!!";
      else
        cerr << "done" << endl;
    } // if pid
    else
      sleep(2);                /* parent */
ALE:
executing PROGRAM...
QSettings: error creating /.qt: cannot connect to X server
Takze se program size spusti, ale zarve, ze se nemuze nakonektit na X server a ukonci se.

Diky moc za pomoc:-)
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

16.11.2003 00:13 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše execve - spoustena aplikace nenajde X server
Odpovědět | | Sbalit | Link | Blokovat | Admin
Změn execve na execv a odstraň ten druhý NULL argument.
16.11.2003 00:22 Martin Čížek | skóre: 20 | Praha
Rozbalit Rozbalit vše execve - spoustena aplikace nenajde X server
Odpovědět | | Sbalit | Link | Blokovat | Admin
Je to tim, ze nepredavate podprocesu promenne prostredi (treti argument execve, ktery jste nechal NULL). X server, ktery se pouzije, se zjistuje na zaklade hodnoty promenne DISPLAY. Preji hodne uspechu. ;-)
Kdyby dva z nás byli dvěma z nich, všichni z nás by mohli být všemi z nich.
16.11.2003 12:13 drag
Rozbalit Rozbalit vše execve - spoustena aplikace nenajde X server
Odpovědět | | Sbalit | Link | Blokovat | Admin
OBEMA DIKY MOC ZA INFO Uz mi to bezi. Spravne to ma byt takhle (pro pripadne zajemce):
  int pid;
  if ( (pid = fork()) < 0)
    cerr << "fork error !!!!!!!!!!!!!!!" << endl;
  else
    if (pid == 0) {        /* child */
      cerr << "executing program...";
      char *arg[]={"program", NULL};
      if (execve("program", arg, environ))
        cerr << "ERROR!!!";
      else
        cerr << "done" << endl;
    } // if pid

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.