Мы можем использовать приведенный ниже скрипт, чтобы найти файл, содержащий более 5 строк
for i in filename1 filename2 filename3 file; do j=`awk '{print NR}' $i| sort -nr| sed -n '1p'`; if [[ $j > 5 ]]; then echo $i; fi; done| sed '1i below are filenames which having lines more than 5'
Чтобы иметь возможность прослушивать порт, необходимо создать сокет. Это делается через
sockfd = socket(AF_INET, SOCK_STREAM, 0);
(в C ). Затем вы можете прослушать этот файловый дескриптор.
Пользователь имеет максимальное количество открытых файлов, см. ulimit -h
в вашей системе, чтобы узнать это максимальное количество.
Я точно не помню, требуется ли фактическое соединение для ulimit открытых файлов или прослушивание сокета также считается открытым файлом. Я думал, что слушать тоже важно.
Обратите внимание, что обычный пользователь не может выполнить привязку к порту ниже 1024.
Selinux и apparmor также должны позволять контролировать то, что пользователь может привязать, поскольку порт (никогда не пробовал; только что из документов ).
Обратите внимание, что в реальной жизни я видел исчерпание портов только для эфемерных портов, но никогда для серверных портов.