Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use win32 CreateProcess function to wait until the child done to write to file

Hello im not win32 programmer and its all new to me. i like to open process from my parent win32 application ( ok this is i know how to do) the child process then write to text file and close it self . how can i detect in the parent application that the child application done writing to the text file . and then from the parent app to read the text file . this is all in win32 c++ Thanks

like image 915
user63898 Avatar asked Jan 19 '23 20:01

user63898


2 Answers

The PROCESS_INFORMATION structure (which is the last argument to CreateProcess) contains member hProcess. This is a handle to the new process, which you can wait on using WaitForSingleObject.

like image 60
Begemoth Avatar answered Jan 29 '23 17:01

Begemoth


A slight modification of Benoits answer. You can create an event in the parent process and wait for that event with WaitForSingleObject. This event can then be signaled by the child through a call to SetEvent.

http://msdn.microsoft.com/en-us/library/ms686211%28v=vs.85%29.aspx

It's important that the child process will inherit all inheritable handles, so CreateProcess has to have the fifth parameter set to true (bInheritHandles).

This way the child process doesn't have to exit for you to check that the file has been written.

like image 27
ralphtheninja Avatar answered Jan 29 '23 17:01

ralphtheninja