Что такое дескриптор файла 10?
Что такое дескриптор файла 10?
Реальный пример (где стандартный вывод игнорируется, стандартная ошибка перенаправляется на стандартный вывод, а данные из файлового дескриптора 10 перенаправляются на стандартный вывод), для которого я потерял документацию / контекст для:
./cluexec21nodes 'mkdir /home/mortense/sambapub;cd /home/mortense/sambapub;./runcola.sh >/dev/null 2>&1 10>&1 &'
Стандартные файловые дескрипторы
0 Standard Input (stdin)
1 Standard Output (stdout)
2 Standard Error (stderr)
но что такое дескриптор файла 10?
Это использовалось в системе Linux (возможно, Red Hat).
3 ответа
Помимо стандартных файловых дескрипторов есть 3-1024. Они могут быть созданы в сценариях с
exec 10<> afilename
С этого момента все, что записано в файловый дескриптор 10, записывается в afilename
Когда у тебя есть
./script.sh 10>&1
Вы перенаправляете все, что пошло бы в файловый дескриптор 10 на стандартный вывод.
Вы хотите, чтобы рассмотреть runcola.sh
сценарий, чтобы увидеть, почему он это делает.
Дескриптор 10 используется для комментариев.
В Wikipedia есть хорошая стартовая статья в File descriptor. Это немного вводит в заблуждение, чтобы сказать, что sh
синтаксис "перенаправляет" один дескриптор в другой. Твердые источники информации можно найти в разделе "Дизайн операционной системы UNIX". Документация для системных вызовов dup(2)
а также dup2(2)
раскрыть хорошую сделку
grawity, Paul и другие (вы знаете, кто вы есть) могут также знать о некоторых дополнительных ресурсах. Ребята?
Файловые дескрипторы не исправлены; программа может использовать их по своему усмотрению. (Даже 0-2 FD могут быть закрыты, открыты, использованы повторно.)
В этом случае fd 10 кажется выбранным произвольно; это может быть ./runcola.sh
ожидает, что сможет написать некоторую дополнительную информацию к нему. Вы должны будете прочитать сам сценарий, чтобы знать наверняка.