From: Thomas S. <tho...@fa...> - 2003-09-19 19:55:08
|
Hi to all who are listening! I'm trying to write a multi-threaded application (my first!). The threads are needed because i want it to be able to execute programs, and i want more control than the standard system(char*) call; specifically, i want to be able to close the child programs from the main one. Unfortuantely, i've had no luck so far... The gnu help file that i got with mingw (win32 .hlp file) documents a fork function, which i couldn't find in mingw. Looking in the headers i found some spawn functions; but i don't have a clue how they work + what the args are! I'm guessing they're similar to the exec functions, but create a new process..?? i've experimented with the spawnl function like this: _spawnl (0, [executable name], NULL); but it didn't do anything as far as i could tell (doh!). any help much appreciated. ps: another thing which puzzled me: why the underscores on the function names?? should i be calling the ones with underscores or without? -- http://www.fastmail.fm - The way an email service should be |
From: Greg C. <chi...@mi...> - 2003-09-21 05:14:47
|
Thomas Scholl wrote: > > Unfortuantely, i've had no luck so far... > The gnu help file that i got with mingw (win32 .hlp file) documents a > fork function, which i couldn't find in mingw. What .hlp file is that? I thought the windows operating system didn't offer fork(). > Looking in the headers i found some spawn functions; but i don't have a > clue > how they work + what the args are! MinGW provides interfaces so that you can call functions in the ms C runtime library and the operating system, but it doesn't implement them--ms does that. Try searching for documentation at their website, e.g. http://www.google.com/search?q=_spawnl&sitesearch=microsoft.com |
From: Luke D. <cod...@ho...> - 2003-09-21 06:18:01
|
----- Original Message ----- From: "Thomas Scholl" <tho...@fa...> To: "mingw_list" <min...@li...> Sent: Friday, September 19, 2003 9:53 PM Subject: [Mingw-users] Threads + processes > Hi to all who are listening! > > I'm trying to write a multi-threaded application (my first!). > The threads are needed because i want it to be able to execute programs, > and i want more control than the standard system(char*) call; > specifically, i want to be able to close the child programs from the main > one. > > Unfortuantely, i've had no luck so far... > The gnu help file that i got with mingw (win32 .hlp file) documents a > fork function, which i couldn't find in mingw. You didn't get this .hlp file with MinGW. AFAIK we don't distribute any .hlp files, and this document is probably about GNU libc which is not related to MinGW. The official documentation for the MinGW C runtime library is at msdn.microsoft.com. > Looking in the headers i found some spawn functions; but i don't have a > clue > how they work + what the args are! See the MS documentation. > I'm guessing they're similar to the exec functions, but create a new > process..?? > > i've experimented with the spawnl function like this: > _spawnl (0, [executable name], NULL); > > but it didn't do anything as far as i could tell (doh!). > > any help much appreciated. > > ps: another thing which puzzled me: > why the underscores on the function names?? > should i be calling the ones with underscores or without? > The names without underscores are just aliases, but MS documents them with underscores so use those. You may also wish to look at using CreateProcess() for more control than spawn. Luke |
From: Manu <ma...@wa...> - 2003-09-21 14:36:11
|
Thomas Scholl wrote: > Hi to all who are listening! > > I'm trying to write a multi-threaded application (my first!). > The threads are needed because i want it to be able to execute programs, > and i want more control than the standard system(char*) call; > specifically, i want to be able to close the child programs from the main > one. In addition to the spawn functions, you may wish to use the Windows API. A Google search with "CreateProcess", "_beginthread", "_beginthreadex" or "Worker Thread" should give you more info and maybe sample apps. See also Code Guru and The Code Project: http://www.codeguru.com/ http://www.codeproject.com/ Finally, I have in my source tree, a few C++ classes to add child processes objects into a linked list and then to execute these processes. See process.cpp/process.h, CJobList::Run(), CJobList::run_thread_internal(), CChildProcess::Run(). http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/visual-mingw/visual-mingw/src/ Manu. |