Вопросы с тегом «file-descriptors»


7
Когда бы вы использовали дополнительный файловый дескриптор?
Я знаю, что вы можете создать дескриптор файла и перенаправить вывод на него. например exec 3<> /tmp/foo # open fd 3. echo a >&3 # write to it exec 3>&- # close fd 3. Но вы можете сделать то же самое без дескриптора файла: FILE=/tmp/foo echo a > "$FILE" Я …

2
> & - более эффективен, чем> / dev / null?
Вчера я прочитал этот комментарий, который говорит, что в оболочке (по крайней мере bash) >&-"имеет тот же результат, что и" >/dev/null. Этот комментарий фактически ссылается на руководство АБС как на источник информации. Но этот источник говорит, что >&-синтаксис «закрывает файловые дескрипторы». Мне не ясно, являются ли два действия закрытия файлового …

5
Насколько переносимы / dev / stdin, / dev / stdout и / dev / stderr?
Иногда мне нужно указать «путь-эквивалент» один из стандартных IO потоков ( stdin, stdout, stderr). Так как 99% времени я работаю с Linux, я просто собираюсь /dev/получить /dev/stdinи т. Д., И это « похоже, делает правильно». Но, с одной стороны, мне всегда было неловко по поводу такого обоснования (потому что, конечно, …


2
Ограничения на количество файловых дескрипторов
Я пытаюсь установить 389-ds, и это дает мне это предупреждение: WARNING: There are only 1024 file descriptors (hard limit) available, which limit the number of simultaneous connections. Я понимаю о файловых дескрипторах, но не понимаю мягких и жестких ограничений. Когда я бегу cat /proc/sys/fs/file-max, я возвращаюсь 590432. Это должно подразумевать, …

1
Файловые дескрипторы и сценарии оболочки
Мне очень трудно понять, как использовать файловые дескрипторы в сценариях оболочки. Я знаю основы, такие как exec 5 > /tmp/foo Итак, fd 5 прикреплен к foo для записи. exec 6 < /tmp/bar … для чтения. exec 5>&- … Закрыть фд. Теперь, что это делает? #!/bin/bash exec 5 > /tmp/foo exec …

3
Порядок перенаправлений
Я не совсем понимаю, как компьютер читает эту команду. cat file1 file2 1> file.txt 2>&1 Если я понимаю, 2>&1просто перенаправьте стандартную ошибку на стандартный вывод. По этой логике команда выглядит следующим образом: объединить файлы file1и file2. отправить stdoutиз этой операции в file.txt. отправить stderrв stdout. конец? Я не уверен, что …

1
Как называется синтаксис bash '<(file content)'?
Этот ответ на Security StackExchange использует интересный синтаксис bash для генерации файла в строке: openssl req -new -x509 -nodes -newkey ec:&lt;(openssl ecparam -name secp384r1) -keyout cert.key -out cert.crt -days 3650 Этот бит особенно интересен: &lt;(openssl ecparam -name secp384r1) Работает только: echo &lt;(openssl ecparam -name secp384r1) Я вернусь /dev/fd/63 Так что …

4
Как один и тот же fd в разных процессах может указывать на один и тот же файл?
Скажем, у меня есть процесс 1 и процесс 2 . Оба имеют дескриптор файла, соответствующий целому числу 4. Однако в каждом процессе дескриптор файла 4 указывает на совершенно другой файл в таблице открытых файлов ядра: Как это возможно? Разве файловый дескриптор не должен быть индексом записи в таблице открытых файлов?

2
Какова цель первого аргумента для выбора системного вызова?
От man select int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); nfds - дескриптор файла с наибольшим номером в любом из трех наборов плюс 1. Какова цель nfds, когда у нас уже есть readfds, writefdsи exceptfdsиз которого могут быть определены файловые дескрипторы?

3
Как вывести список дескрипторов открытых файлов (и файлов, на которые они ссылаются) в моей текущей сессии bash
Я бегу в интерактивной сессии Bash. Я создал несколько файловых дескрипторов, используя exec, и я хотел бы перечислить текущий статус моей сессии bash. Есть ли способ вывести список открытых файловых дескрипторов?

2
Переносимость файловых дескрипторов ссылок
Я всегда удивлялся этому, но никогда не занимал время, чтобы выяснить это, поэтому я сделаю это сейчас - насколько мобильно показанное здесь использование того /proc/$$/fd/$Nили другого /dev/fd/$N? Я понимаю гарантии POSIX /dev/null, /dev/tty, and /dev/console (хотя я узнал об этом только на днях после прочтения комментариев к этому ответу ), …


1
Как разорвать TCP-соединение, установленное самим bash?
Я использовал exec 3&lt;&gt;/dev/tcp/192.168.0.101/6435для установления соединения TCP с 192.168.0.101:6435. И я получил, а также отправил несколько сообщений с pipeкомандой. Теперь я хочу разорвать соединение TCP. Но, как ss -anpetя вижу, bash сам удерживает эту связь, не разветвляя дочерний процесс. Я пытался послать сигнал 9 и 15 процессу bash, но, как …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.