X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=0.0 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MIME_CHARSET_FARAWAY,RCVD_IN_DNSWL_NONE,TW_TV X-Spam-Check-By: sourceware.org MIME-Version: 1.0 In-Reply-To: References: Date: Fri, 14 May 2010 13:03:39 +0800 Message-ID: Subject: Re: vfork always fail problem From: Huang Bambo To: The Cygwin Mailing List Content-Type: text/plain; charset=GB2312 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com I truly find the problem. The path to the executable have Chinese character. My windows's default language is gbk. If I use utf-8 encoding for the shell, fork fail. If i use gbk, everything goes fine. The following is the test . [Bambo AT bambo-notebook ARM9]$ pwd /cygdrive/d/=B8=F6=C8=CB=D1=D0=B7=A2/ARM9 ^^^^^^^^^^ Chinese directory name [Bambo AT bambo-notebook ARM9]$ export LANG=3Den_US.UTF-8 [Bambo AT bambo-notebook ARM9]$ ./tvfork.exe 3 [main] tvfork 4900 fork: child -1 - CreateProcessW failed, errno 2 vfork failed.: No such file or directory [Bambo AT bambo-notebook ARM9]$ export LANG=3Den_US.GBK [Bambo AT bambo-notebook ARM9]$ ./tvfork.exe I'm parentI'm chield. 2010/5/14 Huang Bambo : > Finally I test and get another result. > I run the test program at > /home/Bambo/test/t1/ > but /home/Bambo/test is a symbolic link to another directory. > Maybe it's the problem that the system handle symbolic > > 2010/5/14 Huang Bambo : >> [Bambo AT bambo-notebook 4.4.4]$ cat tvfork.c >> #include >> #include >> #include >> >> int main(void) >> { >> pid_t pid =3D vfork(); >> if ( pid > 0 ) >> { >> printf("I'm chield.\n"); >> _exit(0); >> } >> else if ( pid =3D=3D 0 ) >> { >> printf("I'm parent"); >> } >> else >> { >> perror("vfork failed."); >> } >> } >> [Bambo AT bambo-notebook 4.4.4]$ make tvfork >> cc tvfork.c -o tvfork >> [Bambo AT bambo-notebook 4.4.4]$ ./tvfork.exe >> 4 [main] tvfork 4136 fork: child -1 - CreateProcessW failed, errno 2 >> vfork failed.: No such file or directory >> [Bambo AT bambo-notebook 4.4.4]$ ./tvfork >> 3 [main] tvfork 2956 fork: child -1 - CreateProcessW failed, errno 2 >> vfork failed.: No such file or directory >> >> I think maybe the wrong parameters were sent while calling CreateProcess= W. >> > -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple