Searched defs:RTProcCreateEx (Results 1 - 4 of 4) sorted by relevance

/vbox/src/VBox/Runtime/r3/posix/
H A Dprocess-creation-posix.cpp269 return RTProcCreateEx(pszExec, papszArgs, Env, fFlags,
277 * RTPathTraverseList callback used by RTProcCreateEx to locate the executable.
295 RTR3DECL(int) RTProcCreateEx(const char *pszExec, const char * const *papszArgs, RTENV hEnv, uint32_t fFlags, function
/vbox/src/VBox/Runtime/r3/win/
H A Dprocess-win.cpp271 return RTProcCreateEx(pszExec, papszArgs, Env, fFlags,
1062 * RTPathTraverseList callback used by RTProcCreateEx to locate the executable.
1077 RTR3DECL(int) RTProcCreateEx(const char *pszExec, const char * const *papszArgs, RTENV hEnv, uint32_t fFlags, function
/vbox/src/VBox/Main/src-all/
H A DExtPackManagerImpl.cpp2206 vrc = RTProcCreateEx(szExecName,
2179 AssertReturn(cArgs < RT_ELEMENTS(apszArgs) - 1, E_UNEXPECTED); pszLastArg = va_arg(va, const char *); if (!pszLastArg) break; LogRel((�, pszLastArg)); apszArgs[cArgs++] = pszLastArg; }; va_end(va); LogRel((�)); apszArgs[cArgs] = NULL; RTPIPE hPipeR; RTHANDLE hStdErrPipe; hStdErrPipe.enmType = RTHANDLETYPE_PIPE; vrc = RTPipeCreate(&hPipeR, &hStdErrPipe.u.hPipe, RTPIPE_C_INHERIT_WRITE); AssertLogRelRCReturn(vrc, E_UNEXPECTED); HRESULT hrc; RTPROCESS hProcess; vrc = RTProcCreateEx(szExecName, apszArgs, RTENV_DEFAULT, 0 , NULL , NULL , &hStdErrPipe, NULL , NULL , &hProcess); if (RT_SUCCESS(vrc)) { vrc = RTPipeClose(hStdErrPipe.u.hPipe); hStdErrPipe.u.hPipe = NIL_RTPIPE; RTPROCSTATUS ProcStatus = { -42, RTPROCEXITREASON_ABEND }; size_t cbStdErrBuf = 0; size_t offStdErrBuf = 0; char *pszStdErrBuf = NULL; do { if (hPipeR != NIL_RTPIPE) { char achBuf[1024]; size_t cbRead; vrc = RTPipeReadBlocking(hPipeR, achBuf, sizeof(achBuf), &cbRead); if (RT_SUCCESS(vrc)) { size_t cbBufReq = offStdErrBuf + cbRead + 1; if ( cbBufReq > cbStdErrBuf && cbBufReq < _256K) { size_t cbNew = RT_ALIGN_Z(cbBufReq, 16); void *pvNew = RTMemRealloc(pszStdErrBuf, cbNew); if (pvNew) { pszStdErrBuf = (char *)pvNew; cbStdErrBuf = cbNew; } } if (cbBufReq <= cbStdErrBuf) { memcpy(&pszStdErrBuf[offStdErrBuf], achBuf, cbRead); offStdErrBuf = offStdErrBuf + cbRead; pszStdErrBuf[offStdErrBuf] = �; } } else { AssertLogRelMsg(vrc == VERR_BROKEN_PIPE, (�, vrc)); RTPipeClose(hPipeR); hPipeR = NIL_RTPIPE; } } if (hProcess != NIL_RTPROCESS) { vrc = RTProcWait(hProcess, hPipeR == NIL_RTPIPE ? RTPROCWAIT_FLAGS_BLOCK : RTPROCWAIT_FLAGS_NOBLOCK, &ProcStatus); if (RT_SUCCESS(vrc)) hProcess = NIL_RTPROCESS; else AssertLogRelMsgStmt(vrc == VERR_PROCESS_RUNNING, (�, vrc), hProcess = NIL_RTPROCESS); } } while ( hPipeR != NIL_RTPIPE || hProcess != NIL_RTPROCESS); LogRel((�, ProcStatus.enmReason, ProcStatus.iStatus, offStdErrBuf ? pszStdErrBuf : �)); if (offStdErrBuf > 0) { RTStrStripR(pszStdErrBuf); offStdErrBuf = strlen(pszStdErrBuf); } char *pszSuccessInd = findSuccessIndicator(pszStdErrBuf, offStdErrBuf); if (pszSuccessInd) { *pszSuccessInd = �; offStdErrBuf = pszSuccessInd - pszStdErrBuf; } else if ( ProcStatus.enmReason == RTPROCEXITREASON_NORMAL && ProcStatus.iStatus == 0) ProcStatus.iStatus = offStdErrBuf ? 667 : 666; if ( ProcStatus.enmReason == RTPROCEXITREASON_NORMAL && ProcStatus.iStatus == 0) hrc = S_OK; else if (ProcStatus.enmReason == RTPROCEXITREASON_NORMAL) { AssertMsg(ProcStatus.iStatus != 0, (�, pszStdErrBuf)); hrc = setError(E_FAIL, tr(�), ProcStatus.iStatus, offStdErrBuf ? pszStdErrBuf : �); } else if (ProcStatus.enmReason == RTPROCEXITREASON_SIGNAL) hrc = setError(E_UNEXPECTED, tr(�), ProcStatus.iStatus, offStdErrBuf ? pszStdErrBuf : �); else if (ProcStatus.enmReason == RTPROCEXITREASON_ABEND) hrc = setError(E_UNEXPECTED, tr(�), offStdErrBuf ? pszStdErrBuf : �); else hrc = setError(E_UNEXPECTED, tr(�), ProcStatus.enmReason, ProcStatus.iStatus, offStdErrBuf ? pszStdErrBuf : �); RTMemFree(pszStdErrBuf); } else hrc = setError(VBOX_E_IPRT_ERROR, tr(�), szExecName, vrc); RTPipeClose(hPipeR); RTPipeClose(hStdErrPipe.u.hPipe); return hrc; } ExtPack *ExtPackManager::i_findExtPack(const char *a_pszName) { size_t cchName = strlen(a_pszName); for (ExtPackList::iterator it = m->llInstalledExtPacks.begin(); it != m->llInstalledExtPacks.end(); it++) argument
/vbox/include/iprt/
H A Dmangling.h1114 # define RTProcCreateEx RT_MANGLER(RTProcCreateEx) macro

Completed in 94 milliseconds