2016-06-04 2 views
0

Я только что зарегистрировался на этом сайте. Надеюсь, кто-то может помочь.Функции Linux, именуемые

В настоящее время я читаю книги программирования Linux, честно говоря, я ничего не знаю о linuxLinux.

Моя проблема в том, что я действительно нахожу, что API-интерфейсы Linux действительно трудно читать и понимать (полные аббревиатур) на первый взгляд, за исключением ссылок на руководство.

Почему они не делают API более подробным? И как насчет этой проблемы? Я думаю, что это скрытая преграда для новичков, подобных мне.

Большое спасибо. Andy Liu

+0

«Интерфейсы Linux» основаны на [POSIX] (https://en.wikipedia.org/wiki/POSIX). Linux был написан для совместимости с [Unix] (https://en.wikipedia.org/wiki/Unix) и поэтому должен быть совместим с POSIX. Использование «более подробных» имен функций означало бы, что это уже не Linux. Если вам нужны более подробные имена функций API, используйте [Windows API] (https://en.wikipedia.org/wiki/Windows_API) (который [можно сделать в Linux] (https://www.winehq.org)). –

+0

@JoachimPileborg, но это просто переводит вопрос вокруг, не так ли :) – Quentin

+0

@Joachim Pileborg Можете ли вы сказать больше об использовании Win API в Linux-программировании. Для новичков API-интерфейсы Linux действительно являются большой болью, ИМО. Современные методологии программирования учат нас писать четкий и читаемый код, к сожалению, я мало что вижу в современном Linux. – lpf2908

ответ

1

Большая часть Unix API была разработана около 40 лет назад, когда компьютеры имели очень мало памяти (особенно миникомпьютеры, которые они использовали для Unix в то время), а дисковое хранилище было очень дорогим, поэтому программисты часто обрезали углы для минимизации используемой памяти и дискового пространства. Использование коротких имен функций уменьшает объем памяти, используемый компиляторами.

Однако один из разработчиков Unix допускает, что они, возможно, зашли слишком далеко. Ken Thompson однажды спросили, что он будет делать по-другому, если бы он был перепроектирования Unix, и сказал

Я заклинание creat с e.

Чтобы оценить, насколько все изменилось, вы, вероятно, флэш-накопитель с большим количеством памяти, чем все машинным отделение Т лаборатории AT &, когда они создавали Unix.

В течение многих лет эта традиция сопровождалась, но в конце концов дизайнеры API увидели свет. Таким образом, теперь мы имеем такие функции, как pthread_create; если бы это было спроектировано 30 лет назад, вероятно, это было бы названо загадочным, как thrcr. Но мы застряли с короткими именами для всех старых функций - добавление длинных имен для них было бы больше проблем, чем того стоит.

+0

Спасибо за ответ, вы говорите, что «добавление длинных имен для них было бы больше проблем, чем того стоит», я действительно не могу это получить. В основном добавление API-интерфейсов обертки вокруг устаревших API-интерфейсов Linux не является большой проблемой, ИМО. Я думаю, что сравнение переносимости, читаемость одинаково важна. – lpf2908

+0

Есть тысячи приложений, использующих старые имена, и десятки учебников, преподающих их. Программисты должны были бы научить их понимать эти приложения, поэтому обертки им не помогли бы. – Barmar

Смежные вопросы