system("sh example.sh") というコードでシェルスクリプトを起動し、次のようにすべてのファイル記述子を閉じたいと思います。
for fd in $(ls /proc/$$/fd); do
case "$fd" in
0|1|2)
;;
*)
eval "exec $fd<&-"
;;
esac
done
ただし、エラーが報告されます。
example.sh 1: exec: 10: not found
Linuxシェルはダッシュです。ダッシュは9より大きいファイル記述子を操作できないようです。そして、bashなどの他のLinuxシェルにアクセスすることはできません。 fdsをオフにするにはどうすればよいですか?ありがとうございます。