Проверьте использование последней версии удара. Если Вы, сообщаете об ошибке; обязательно укажите точно, где Вы получили двоичный файл удара при установке существующего двоичного файла, или какой компилятор и конфигурацию времени компиляции Вы использовали и где Вы получили источник при компиляции удара собой. Также упомяните свою точную версию AIX и свою аппаратную архитектуру. Упоминание, как воспроизвести ошибку, как Вы сделало здесь, конечно.
“Прерванный системный вызов” не является действительно ошибкой. Это - ошибочное состояние (EINTR
) это говорит вызывающей стороне, что системный вызов не был выполнен вообще (в противоположность предпринятому и неудавшемуся). Нормальный путь к приложению для контакта с EINTR
должен повторно выполнить системный вызов, возможно, после выполнения некоторой другой обработки, такой как выполнение обработчика сигналов. EINTR
существует, чтобы дать шанс приложению выполнять неотложные задачи, в то время как оно занято блокирующимся системным вызовом. Можно ли читать, Когда проверить на EINTR и повторить вызов функции? и Использование повторно используемые функции для более безопасной обработки сигнала для большего количества дополнительного чтения.
Bash видит EINTR
возвращенный системным вызовом в месте, где это не ожидало это. Это сообщает об этом как об ошибке универсальным способом. Это - ошибка, возможно из-за причуды или ошибки операционной системы.
Да, это возможно с помощью -N
-N GREP
.
из MAN GREP
:
-n, --line-number
Prefix each line of output with the 1-based line number within its input file.
Например, если у вас есть файл с именем file.txt
, имеющий:
this is
foo test
and this is
bar test
Теперь вывод GREP -N Тест "file.txt
:
$ grep -n "test" file.txt
2:foo test
4:bar test
здесь 2 и 4 указывает номера строк, где найден шаблон.
GREP
GREP Подход - это самый простой, но все они будут напечатать номер строки соответствия линии PAT
:
Perl
Perl -lne 'Print $. Если / pat / 'file
awk
awk '/ pat / {print nr}'
SED
SED -N '/ PAT / =' Файл