Добавление к ответу Useless:
Библиотечные функции быстрее, чем системные вызовы и обычно не содержат соображения разрешения/безопасности, когда они работают с полномочиями процесса, и это - память.
Syscalls, с другой стороны, так как они работают в ядре, имеют доступ ко всему в системе, и таким образом, они должны управлять тем, что может сделать обработка вызовов, когда это называет их (проверьте, что это имеет полномочия открыть файл, например), кроме того, так как syscalls находятся в ядре, называние их требует контекстного переключения в ЦП, который является очень тяжелым процессом относительно просто вызова вызова библиотеки.
Syscalls обычно отражаются как система использование ЦП в программах мониторинга.
Поскольку Вы говорите этому, что хотите только - проверка, которая не генерирует вывод, и Вы также указываете, что хотите, чтобы отсортированный - вывод перешел к определенному файлу. Это взаимоисключающие понятия, и они осуществляются в sort.c (гну coreutils 8.20) с
if (checkonly)
{
…
if (outfile)
{
static char opts[] = {0, 'o', 0};
opts[0] = checkonly;
incompatible_options (opts);
}
Принятие Вас использует GNU sort
, опции, которые Вы упоминаете, делают:
-c, --check, --check=diagnose-first
check for sorted input; do not sort
-o, --output=FILE
write result to FILE instead of standard output
-c
флаг просто сообщит Вам, отсортирован ли вход уже:
$ echo -e "A\nB\nC" | sort -c
$ echo -e "A\nC\nB" | sort -c
sort: -:3: disorder: B
Так, если вход отсортирован, ничто не печатается и если inpnut не отсортирован, сообщение об ошибке печатается к стандартной погрешности. Другими словами, sort -c
никогда печать к стандартному выводу. Так как это никогда не печатает, не имеет большого смысла перенаправлять свой вывод.
вид-c никогда не производит вывод. Это только проверяет файл. Без вывода нет никакой причины записать это в файл. Так, несовместимый с-o.
Вы могли использовать-c в качестве своего рода проверка на файле прежде, чем отсортировать его, но я не уверен, что это на самом деле убыстрилось бы, вещи как Вы хотят.
Существует большая разница в проверке, если файл отсортирован, и отсортируйте его.
При проверке в лучшем случае две записи достаточно (довольно быстры) при первой записи, которая не отсортирована, команда может выйти, и проверка сделана, но в этой точке вывод был бы неполным, худший случай - когда файл отсортирован (только в этом случае, вывод имел бы, имеют смысл).
Если Вы имеете много файлов к виду и, оказывается, часто прерываете, вероятно, необходимо отслеживать в некотором роде сделанные файлы прежде, чем отсортировать снова.