home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
446.lha
/
Popen
/
popen.notes
< prev
next >
Wrap
Text File
|
1990-12-06
|
2KB
|
42 lines
Contained in the directory with these notes are sources which produce
two versions of a "popen/pclose" pair for AmigaDos. The first, "popen.c"
is implemented using the ARP AsyncRun() function and seems to run fine
under either AmigaDos 1.3.2 or AmigaDos 2.0.2. The second, "popen2.c" is
implemented using the new AmigaDos 2.0 CreateNewProc() and System()
functions and works ONLY on AmigaDos 2.0.2. Both versions use the standard
AmigaDos PIPE: device and use the process ID to ensure that the pipe name
is unique.
Also included is a program to link with either popen version for testing
purposes and a couple of **real** simple programs to execute through
the pipe to test the functionallity. See the comments in "pipetst.c",
"tst.c" and "cat.c" for more information.
There is a Makefile included. You should be able to just type "lmk" and
have it produce the ARP version of everything provided that you have
put the arp headers in your include path. You can also type "lmk all2"
to have it make the Dos2.0 version ... but you MUST have the 2.0 include
files installed!
I have been using the ARP version of popen in the RCS system for quite
a while and it has worked flawlessly. (Ray Brand put a slightly different
version of popen into the RCS that was shipped everywhere because he
didn't want to have any dependencies on ARP in the system). I have
also used it in a couple of other applications and the only problem I
have encountered is that, Under AmigaDos 2.0, the AsyncRun function can't
find the resident programs set up by the Shell (Stack, Path, and other
commands were moved into the shell and are no longer stand-alone commands).
Of course, the 2.0 version hasn't received as much testing but it has
worked with nearly every Dos command I've got. I would enjoy hearing from
anyone who finds this stuff useful and/or informative. If you find
any problems or make improvements to this code please let me know about
it! My various addresses are:
UseNet: ricks@isc-br.isc-br.com or uunet!isc-br.isc-br.com!ricks
bix: schaef
Compuserve: 70120,174
Phone: (509) 928-3533
Rick Schaeffer