Всем привет.
Даже не вопрос, а скорее обсуждение, так как, как я понял, однозначного ответа в данном случае быть не может. Что предпочитаете и почему: системные вызовы или библиотечные функции (их аналоги)? Просто хотелось бы выслушать мнения за и против. В каком случае стоит использовать syscalls, а когда стоит прибегнуть к glibc?
Сам я использую syscall. Проверяю значение через perror(). Проблем с переносом программ с одной архитектуры на другую или просто при миграции на системы с более новыми ядрами, пока не имел (пока во всяком случае).
Системные вызовы или библиотечные функции? (С)
Модератор: Модераторы разделов
-
Stauffenberg
- Сообщения: 2041
- Статус: ☮ PEACE ☮
- ОС: открытая и свободная
Системные вызовы или библиотечные функции?
Labor omnia vincit
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
-
serzh-z
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: Системные вызовы или библиотечные функции?
Вопрос явно с подвохом и вызвает недоумение. Нужна привязка к ядру - используй системные вызовы. Нужна привязка к переносимому слою - используй библиотеку C.Stauffenberg писал(а): ↑16.02.2014 02:12В каком случае стоит использовать syscalls, а когда стоит прибегнуть к glibc?
-
Stauffenberg
- Сообщения: 2041
- Статус: ☮ PEACE ☮
- ОС: открытая и свободная
Re: Системные вызовы или библиотечные функции?
serzh-z писал(а): ↑16.02.2014 02:53Вопрос явно с подвохом и вызвает недоумение. Нужна привязка к ядру - используй системные вызовы. Нужна привязка к переносимому слою - используй библиотеку C.Stauffenberg писал(а): ↑16.02.2014 02:12В каком случае стоит использовать syscalls, а когда стоит прибегнуть к glibc?
Ну это-то понятно
Labor omnia vincit
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
-
NickLion
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: Системные вызовы или библиотечные функции?
Универсальней стандартная библиотека C, затем POSIX. По определению, поскольку не имеет проблем среди всех POSIX совместимых систем. Зачастую и с Windows проблем нет (там POSIX частично).
И почему именно glibc? — это лишь одна из таких библиотек.
А всякие syscall имеет смысл тогда, когда не хватает функциональности. Можно заиметь проблемы то с ARM, то с различиями Linux/FreeBSD/OSX/...
И почему именно glibc? — это лишь одна из таких библиотек.
А всякие syscall имеет смысл тогда, когда не хватает функциональности. Можно заиметь проблемы то с ARM, то с различиями Linux/FreeBSD/OSX/...