the file descriptor numbers in descriptorspec are not limited to 0 1 and 2 you may specify any valid file descriptor number and it will be passed to the child process this allows your script to interoperate with other scripts that run as coprocesses in particular this is useful for passing passphrases to programs like pgp gpg and openssl in a more secure manner it is also useful for reading status information provided by those programs on auxillary file descriptors 