Je voudrais faire en sorte qu'un script bash produise des informations supplémentaires aux descripteurs de fichiers (FD) supérieurs ou égaux à 3, lorsqu'ils sont ouverts. Pour tester si un FD est ouvert, j'ai imaginé l'astuce suivante:
if (printf '' 1>&3) 2>&-; then
# File descriptor 3 is open
else
# File descriptor 3 is not open
fi
C'est suffisant pour mes besoins, mais je suis curieux de savoir s'il existe un moyen plus idiomatique de tester si un FD est valide. Je suis particulièrement intéressé à savoir s'il existe un mappage de l' fcntl(1)
appel système à une commande shell, qui permettrait la récupération des drapeaux FD ( O_WRONLY
et O_RDWR
pour tester si le FD est accessible en écriture et O_RDONLY
et O_RDWR
pour tester si le FD est lisible).
<>
? Le shell ne va pas lire depuis son stderr, pourquoi voudriez-vous l'ouvrir en lecture + écriture? Que voulez-vous dire par ce qui est arrivé à intrinsèque? ?