| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Разница в программировании |
| Автор: Romikgy 26.5.2006, 12:20 |
| Может ктото пояснит мне велика ли разница в программировании под разными осями? Вынь и лина? Есть ли аналоги в лине типа WinAPI? |
| Автор: ZeusAtVingrad 26.5.2006, 14:01 |
| в ПРОГРАММИРОВАНИИ - никакого. в КОДИРОВАНИИ - абсолютно другая платформа. Сокеты только одинаковые, наследованные от Unix. |
| Автор: Replicator 26.5.2006, 15:51 |
| Смотря на чем программировать (а если различать понятия, как в посте выше, то кодировать). API-функции разные, это раз. Никакого mfc под Линуксом нет, это два. Но и без первого и без второго при написании прикладного ПО можно обойтись. Так что можно считать, программиривание под обе платформы ничем не отличается. |
| Автор: ZeusAtVingrad 26.5.2006, 16:04 |
| Я под программированием им ею ввиду проектирование ПО, алгоритмизацию. А остальное - кодирование. ИМХО. |
| Автор: Romikgy 26.5.2006, 16:10 |
на С++ Где о них почитать / посмотреть? |
| Автор: Kuber 26.5.2006, 16:26 | ||||
Никогда не слышал о таких в линуксе, можно ссылку.
Не думаю, различий может нет в стандартных алгоритмах, библиотеках, OpenGl, и т.п...которые есть и под Win32 и *nix. (Марк Митчел, Джеффри Оулдем) Программирование для Линукс. Профессиональный подход |
| Автор: likehood 26.5.2006, 17:11 | ||
Там они называются системными вызовами. |
| Автор: MAKCim 26.5.2006, 18:59 | ||||
причем их гораздо меньше чем API функций и они стандартизованы POSIX-ом
API в Linux нет, есть системные вызовы явно или неявно, но они необходимы для работы почти всех программ, прикладных в том числе |
| Автор: NextAlex 26.5.2006, 19:50 |
| Romikgy, ты сказал бы что именно ты собираешься писать - получился бы более предметный разговор ... А вообще разница не такая уж и большая, кроме того для некоторых вещей вполне можно использовать кроссплатформенные библиотеки. |
| Автор: MAKCim 26.5.2006, 19:56 | ||
Для этого существуют библиотеки функций, которые являяются обертками над системными вызовами. Их вот и можно назвать API |
| Автор: Replicator 27.5.2006, 17:02 |
| Ну и ты хочешь сказать, что для Линукса нету этих самых библиотек функций? А если они есть и их можно называть API, то к чему тогда вот это: ? |
| Автор: MAKCim 27.5.2006, 17:10 | ||
ну да просто с API сразу Windows ассоциируется потому и не подумал в начале да и Linux API, имхо, не очень распространенное словосочетание |
| Автор: DeadSoul 27.5.2006, 18:16 |
Это не является отличием. Это скорее подпункт первого пункта. Я сейчас пишу под винду и не использую MFC |
| Автор: Romikgy 29.5.2006, 09:08 | ||
Да все собираюсь писать, но пока я ОЧЕНЬ мало знаю линукс, и только начал собирать инфу по программированию в лине, попытался сделать простой проект типа привет мир Вроде слышал есть чтото типа дельфи под линукс, а вот есть ли чтото типа такого но на С? |
| Автор: ZeusAtVingrad 29.5.2006, 09:21 |
| Странно. У меня "проект" hello world состоит из одного файла: hello.cpp |
| Автор: Romikgy 29.5.2006, 09:27 |
| А у меня нет |
| Автор: MAKCim 29.5.2006, 09:31 | ||||||
пишешь
далее
|
| Автор: Romikgy 29.5.2006, 10:39 | ||
Что это? |
| Автор: MAKCim 29.5.2006, 17:42 | ||||
команды Shell вот к этому
в любом дистре такое скомпилируется и запустится |
| Автор: ZeusAtVingrad 29.5.2006, 19:27 | ||
| Издевается он над тобой 1. Запускаешь любой текстовый редактор 2. Набираешь примерно такой код:
3. Сохраняешь под каким-то именем (пусть hello.c) 4. Компилируешь: gcc hello.c Компилятор создаст исполняемый файл a.out, который можно запустить. С остальным потом разберёшься. |
| Автор: MAKCim 29.5.2006, 21:03 | ||
чуть-чуть (по доброму) |
| Автор: bsa 29.5.2006, 21:20 |
| Romikgy, вопросы про Linux - в другую ветку. m4 - это такой язык макросов. Используется automake & autoconf для создания configure и Makefile'ов в проекте. Ты небось первым делом в KDevelop'е что-то решил написать? Ну и по делом тебе. Delphi под Linux называется Kylix. Он же C++ Builder для Linux (зависит от того, каким исполняемым выйлом ты его запускаешь). Очень кривая прога. Мне ничего не удалось им откомпилировать, даже пустую (дефолтную) форму. А программирование на уровне STL, iostream и printf/scanf ничем не отличается. Отличия начинаются при работе с графикой - нет в Linux win32 API (wine не в счет). |
| Автор: MAKCim 29.5.2006, 21:50 | ||
согласен |
| Автор: Romikgy 30.5.2006, 09:05 | ||
Спасибо попробую Жук... рррр... почему? и как тогда общатся с системой? |
| Автор: MAKCim 30.5.2006, 09:17 | ||||
KDevelop довольно неплохая система, но, как уже сказал bsa, для больших проектов для начала вполне хватит gcc/g++ + shell
есть системные вызовы, напрямую ты скорее сможешь ими воспользоваться на ассемблере а так есть стандартная библиотека и стандартные функции (вообще то их можно назвать API для *ix) которые по сути являются обнртками над сис. вызовами read, write, open, close, creat, pipe, mmap ... |
| Автор: Romikgy 30.5.2006, 11:14 |
где о них можно почитать? |
| Автор: MAKCim 30.5.2006, 12:42 | ||||
Linux Programmer's Manual
естественно набирать в командной строке |
| Автор: Romikgy 30.5.2006, 14:53 |
| MAKCim, сиба |
| Автор: Disabled 1.6.2006, 19:45 |
| привет. если писать прикладные программы, то, наверное, придётся воспользоваться вызовами X Windows. а, разве, это не "Linux API" :}} ? |
| Автор: MAKCim 1.6.2006, 20:07 | ||||
вызовы X Windows - это вызовы X Windows на нижнем уровне все равно все идет через стандартные функции
Графическая система - не часть ядра Linux, это вообще просто пользовательская программа, потому эти вызовы не могут быть Linux API |
| Автор: Disabled 1.6.2006, 20:45 |
| насколько я осведомлён (никогда под X win не писал :-} ), X-win общаются непосредственно с железом. а что, касается терминов, то, не думаю, что X-win нельзя назвать, например, GAPI (Graphical API), если говорить о графическом сервере, даже, если он не входит в ядро. кроме того, X windows не "пользовательская программа", если уж точно придерживаться терминов, а программная среда. |
| Автор: MAKCim 1.6.2006, 21:34 | ||||
X представляет собой обычный процесс, работающий в пользовательском режиме
а для чего нужна тогда операционная система (применительно к *ix ядро)? |
| Автор: Disabled 1.6.2006, 21:44 |
| вы хотите сказать, что Х использует сисстемные вызовы *nix? честнго говоря, я не представляю как через полторы сотни входов можно реализовать все ф-ии (в смысле "операции") Х. хотя, могу и ошибаться |
| Автор: MAKCim 1.6.2006, 22:33 | ||
А как иначе? Действовать в обход ядра X не может хотя бы потому, что, повторяюсь, это - всего лишь процесс и его контролирует ядро X предоставляет библиотеку Xlib для доступа к своим функциям, но это только обертка. Реализация библиотеки все равно идет через стандартные функции. Различные оконные среды (GNOME, KDE,...) представляют собой еще один уровень абстракции. По сути это - клиенты системы X. Они посылают X команды и т. д |
| Автор: regis 2.6.2006, 10:59 | ||
Естественно, X использует системные вызовы U*X! А как иначе происходит чтение/запись служебных файлов, или обмен информацией с X клиентами (через обычные сокеты)? Другое дело -- как происходит реализация работы с видео и устройствами ввода (как я понял, это имелось в виду?). Хотя и тут возможны вариации. Насколько я понимаю, только для работы с видео (доступ к видеопамяти, и особенно к реализуемым карточкой функциям аппаратного ускорения) требует каких-то манипуляций непосредственно с железом. С клавиатурой и мышью X-сервер работает через обычные системные вызовы (open/close, read/write, ioctl...). Во всяком случае, XFree под Linux так делает. |
| Автор: Disabled 2.6.2006, 11:13 |
| так, разве, нельзя назвать X win API, если, как вы сказали, Xlib только обёртка (повторюсь, никогда не писал под Х), хоть и разработанная сторонним производителем. ведь, собственно, API и представляет собой "обёртку". или я не прав? |
| Автор: MAKCim 2.6.2006, 13:56 | ||
пусть функции Xlib будут API системы X, но не системы в целом Если проводить какую-то аналогию с Win то read, write, close, pipe, mmap, fork, lseek, ... (и другие из unistd.h) будут API *ix |