Вы можете начать свою команду с:
./foo 2>/dev/null 3>file1 4>file2
Тогда, если вы ls -l / proc / _pid_of_foo_ / fd, вы увидите, что файловые дескрипторы созданы, и вы можете написать в них, например, через ::
write(3,"abc\n",4);
Возможно, было бы менее странно, если бы вы сначала проверили дескриптор файла (с помощью fcntl?).