Hi LMH, Fair enough, although I had understood that mixing native Windows functions and cygwin was not a good practice? (Although i have no idea if thats the only option). I will be using ifdefs, and I don't need it abstracted such that I have 2 functions named the same.
I just have a handful of fork/exec's I'd like to fix to be most cygwin friendly. Thanks, Devin Nate On Nov 25, 2012, at 10:14 AM, "LMH" <lmh_users-gro...@molconn.com> wrote: > You will need to use windows pipes as well as the windows version of fork. I > have a couple of small apps that do what you are suggesting. > > What I did was to abstract the functions for creating process and pipes. > Abstraction was done in the make file. There are functions like > create_new_process(), create_new_pipe(), etc. There are two versions (posix > and windows) of each function with the same name, but in different src files. > When the app is built, one or the other version of the src file is linked, > depending on what os you are in (dual-boot etc). This lets you build your app > on multiple platforms from the same code base. This could be done with ifdef > or other compiler tools as well. > > I don't know if I have time today, but I can put together some of the code > for you to look at. Suffice it to say that I have cpp apps that work as you > suggest, parent/child with pipes for IPC, and they were built for windows > using cygwin. They also run under linux if that matters. > > It may be better to move such a discussion to a programing board since some > of this will not relate to cygwin and it would be nice to have things like > php formatted code, attachments, etc. The mods here can let us know about > that. I have thought at times that some of the code I have here should be > made into some kind of IPC API. Perhaps others would find that useful. > > LMH > > Devin Nate wrote: >> Hi folks, >> >> I'm looking for some documentation about the cygwin spawn use, or a >> recommendation of a package that has had fork/exec replaced by spawn that I >> can review to see how someone else did it. Preferably less intimidating than >> gcc, and which uses pipes for IPC between parent and child. >> >> In particular, the code I'm looking to patch does a typical fork/exec and >> uses 2 pipes to communicate bi-directionally parent to child. The pipes are >> throwing me off as to if cygwin spawn is usable. >> >> I've been through the spawn.cc code, and see spawn_guts has a concept of >> __stdin and __stdout, but I don't see those params used by any of the spawn >> functions. >> >> Any help or pointers to code or docs appreciated. >> >> Thank you, >> Devin Nate >> >> -- >> 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 >> >> > > -- > 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 > -- 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