Что такое дескриптор файла 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 ожидает, что сможет написать некоторую дополнительную информацию к нему. Вы должны будете прочитать сам сценарий, чтобы знать наверняка.

Другие вопросы по тегам