Запитання з тегом «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. Цей коментар насправді посилається на посібник ABS як джерело його інформації. Але це джерело говорить, що >&-синтаксис "закриває дескриптори файлів". Мені не ясно, чи дві дії закриття дескриптора …

5
Наскільки портативними є / dev / stdin, / dev / stdout та / dev / stderr?
Іноді мені потрібно вказати «шлях-еквівалент» одного зі стандартних потоків введення - виведення ( 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>&- … Закрити fd. Тепер що це робить? #!/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 '<(вміст файлу)?
Ця відповідь на 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
Я біжу в інтерактивному сеансі баш. Я створив дескриптори файлів, використовуючи 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я можу бачити, що баш сам тримає цей зв'язок, не змушуючи дочірнього процесу. Я намагався надіслати сигнали 9 і 15 до процесу баш, але, …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.