Compruebe si el progtwig está siendo canalizado

Estoy escribiendo un progtwig que acelera la operación de git push . Esto es lo que necesita hacer:

 printf("[github-username]\n[github-password]"); 

Entonces lo usaría así:

 git-autologin | git push 

Pero no quiero que haya ninguna posibilidad de que alguien simplemente escriba git-autologin o git-autologin > file.txt y pueda ver mi nombre de usuario y contraseña. Sé que suena tonto porque cualquiera todavía puede automatizar los commands de git, pero es poco probable que algún usuario que no sea de confianza llegue a mi sistema.

Mi pregunta: ¿Cómo podría saber si la salida estándar está escribiendo en un file / terminal o si está siendo canalizada?
Editar: El tubo de git push fue simplemente una idea, no es la única razón por la que estoy preguntando.
Editar: ¿Hay alguna forma de determinar el PID o más información sobre el process al que se está cparsing?

Puede detectar cuándo stdout es un terminal al usar (en Linux y POSIX!) La function isatty (3) , probablemente como isatty(STDOUT_FILENO)

Entonces, podría adivinar que si isatty(STDOUT_FILENO) es falso, la salida estándar sería networkingirigida o canalizada.

Alternativamente, use fstat (2) como fstat(STDOUT_FILENO, &stdoutstat);

Pero debe configurar ssh correctamente (con cnetworkingenciales, STFW para cualquier tutorial de SSH) en su sistema, para evitar que git pregunte cualquier contraseña.