createprocess équivalent unix + infos
Bonjour,
Je suis sur l'adaptation d'un programme de windows vers unix (solaris).
Dans la version windows il y'a
Code:
1 2 3 4 5 6 7 8
|
if (CreateProcessW(NULL, (LPWSTR)tcarCommand, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi)) {
Sleep(10000); //sleep utilisé car le WaitForInputHandle ne semble pas avoir d'effet
switch (WaitForInputIdle(pi.hProcess, FRAME_TIMEOUT)) {
case 0 :
pContext->processId = pi.dwProcessId;
pContext->hProcess = pi.hProcess;
pContext->hThread = pi.hThread; |
dans la version unix j'ai remplacé par
Code:
1 2 3 4 5 6 7 8 9 10 11
|
swprintf(tcarCommand,256, L"%s /progid:FrameMaker.Session-%s", tcarPath, (pContext->connectToSession ? L"Connect" : L"New"));
switch(pid=fork()){
case (pid_t)-1:
fprintf(stderr, "Error: Can't duplicate process (%d)\n",errno);
exit(-1);
break;
case (pid_t)0:
if(execl(tcarCommand,"FrameMaker",NULL)==-1){
fprintf(stderr, "Error: Can't create process '%s' (%d)\n", tcarCommand, errno);
} |
J'arrive donc à lancer l'application, mais comment puis (si c'est possible sous unix récupérer le handle sur le process et sur la thread? Je n'ai ici que le PID.
merci d'avance