2011-02-14 21 views
5

Aşağıdaki php çalıştırıyorum:CreateProcess hata kodlarının ayrıntılarını nerede bulabilirim?

Warning: proc_open(): CreateProcess failed, error code - 3 

hata ne anlama geldiğini öğrenebilirsiniz:

$res = proc_open($cmd, $descriptorspec, $pipes, "C:\\xampp\htdocs\\",null,array('bypass_shell'=>true)); 

Sorun aşağıdaki hatayı veriyor bu?

PS: Windows Server 2007'de. SP2. Kullanıcı admin, tam erişim. PHP sürüm 5.3.1

+2

Ayrıca een vir die kullanıcı adı. – McGafter

cevap

8

Windows'ta, CreateProcess aslında bir hata kodu döndürmez. Bunun yerine, CreateProcess başarısız olursa daha fazla ayrıntı bulmak için GetLastError kullanın, sonra GetLastError hata kodunu doğru bir açıklamaya dönüştürmek için FormatMessage kullanın. proc_open(), PHP aslında bir arızası durumunda sizin için GetLastError() yapıyor için kaynak baktığımızda

(GetLastError hata kodları da this list kullanılarak deşifre edilebilir) ve oturum oluyor hata kodudur böylece ...

php_error_docref(NULL TSRMLS_CC, E_WARNING, "CreateProcess failed, error code - %u", dw);

: ziyade CreateProcess dan daha GetLastError() dönüş proc_open mesaj dökümü için bu kullandığı

Not (olası bir BOOL döndüren, 3 :) olmak) Bu "-" 3 önce var sadece bir tire, bir eksi işareti değil. Bu nedenle, that list'a göre "Sistem belirtilen yolu bulamıyor" anlamına gelen 3 numaralı hata kodunu alıyorsunuz.

+1

Bunu php'de nasıl yaparım? – Tjorriemorrie

+0

@Tjorriemorrie Ooops, üzgünüm, PHP bölümüne yeterince dikkat etmiyordu. Cevabımı PHP'nin yanından neler olup bittiğiyle güncelledim ve mesajınızı çözmek için ne anlama geldiğini. –

+0

Harika cevap, teşekkürler – Tjorriemorrie

İlgili konular