У вас есть специальные функции ядра для управления таймерами, и в вашем случае тайм-ауты вы должны проверить в функциях mod _timer, setup _timer и del _timer.
В большинстве случаев ядро Linux само не знает или не заботится об окончании строк, когда вы загружаете файлы на сервер. Хотя, как отмечает муру, CRLF испортит шебанг .
Однако в Linux существует соглашение о том, что все строки в текстовых файлах заканчиваются одним LF. Многие инструменты читают CR и обрабатывают его как любой другой обычный символ(a,b,c,... ). Это происходит из определения текстового файла POSIX .
Это может вызывать проблемы в некоторых языках, таких как сценарии оболочки (sh, bash, zsh, ksh,... ). Если вам повезет, сценарий завершится ошибкой из-за синтаксической ошибки, вызванной ложным дополнительным аргументом. Однако в плохих случаях это может проникнуть в содержимое файлов и имена файлов.
В основном это проблема инструментов и языков, предназначенных только для работы под linux/unix. Многие языки и инструменты, не зависящие от платформы, адаптируются автоматически. Так что вы вряд ли увидите проблему IDE или редактора кода.
Итак, чтобы попытаться закончить спор с коллегами,ни в одном linux нет проблем с окончаниями строк CRLF. Однако некоторые инструменты и языки могут давать сбои или делать странные вещи, если их оставить.
Если вы пишете код для запуска на платформах Linux/Unix, то, как правило, проще настроить git так, чтобы он удалял все символы CR, оставляя вам окончания строк LF.
Linux-приложения и библиотеки приложений в основном без проблем обрабатывают все типы новых строк, включаяCRLF
(MS -DOS, Windows )илиLF
(Unix, Linux ). Вам не нужно ничего менять или указывать. Старая классическая MacOS(не современная MacOS X )использует CR
и такие файлы не будут обрабатываться должным образом (все будет одной строкой ).
Бывают ситуации, когда у вас могут возникнуть проблемы с CR
s, но вы можете решить их в каждом конкретном случае.
$ wc -l /tmp/test-*
2 /tmp/test-dos.txt
0 /tmp/test-mac.txt
2 /tmp/test-unix.txt
4 total
Инструменты для удаления CR: dos2unix
и, например,.:
tr -d '\r' < input > output
илиsed
sed -i 's/\r$//g' file
В общем, POSIX определяет текстовый файл как файл, в котором каждая строка заканчивается символом LF. Таким образом, большинство утилит POSIX воспринимают CRLF как строку с обычной строкой, оканчивающейся на CR перед концом, который рассматривается как обычный символ.
Приемлемо ли это, зависит от ваших потребностей. Например, wc
, вероятно, не будет сильно заботиться о CR при подсчете слов, тогда как вы можете обнаружить, что использование cut
или awk
для выбора определенных полей может привести к выводу CR, которого вы не ожидали. Как отмечали другие, большинство совместимых с POSIX -оболочек (даже в Windows )не воспринимают CR и просто отказываются работать с синтаксической ошибкой
Большинство текстовых редакторов, независимо от платформы, могут обрабатывать как окончания CRLF, так и LF, а некоторые также могут обрабатывать устаревшие MacOS (, то есть MacOS 9 и ранее )окончания строк CR. Таким образом, какие окончания строк вы должны использовать, зависит в основном от личных предпочтений, платформы, на которой вы работаете, и инструментов, с которыми вы работаете.
Если вы используете Git, лучше всего сообщить Git, что определенные файлы являются текстовыми файлами (, то есть в них должны быть преобразованы окончания строк ). Это заставит Git хранить файлы внутри с окончаниями LF, а затем конвертировать их при извлечении по желанию. Вы можете сделать это, добавив что-то подобное в свой файл .gitattributes
в репозитории:
*.c text
*.h text
*.sh text eol=lf
*.ps1 text eol=crlf
*.jpg -text
Указывает, что файлы .c
и .h
являются текстовыми и могут быть извлечены с окончанием строки в соответствии с настроенными пользователем параметрами, и будут записаны в репозиторий с окончанием LF. Для файлов .sh
и репозиторий, и рабочее дерево будут иметь окончания LF, а для файлов .ps1
—репозиторий будет иметь окончания LF, а рабочее дерево всегда будет иметь окончания CRLF, независимо от платформы. В файлах .jpg
вообще не будет строки -, заканчивающей преобразование.
Если вы не хотите указывать все типы файлов, вы можете просто написать это:
* text=auto
и Git попытается сделать все правильно автоматически.