PDA

Показать полную графическую версию : программирование под иксы


Alexey_Sheludchenko@fb
12-06-2012, 12:09
решил начать учить си под линукс, все говорят мол начинай программировать пол GTK или QT , а типа чистый си ничего не даст мол под GTK или QT почти так же как и с winAPI это правда?
и можно ли обойтись чистым си без всяких либ?
например гидра компилится у всех, и не требует ничего дополнительного !!!

CJ F.A.N.
12-06-2012, 12:13
Не так давно задавал подобный вопрос в разделе программирования на этом форуме. Придется юзать C-шные коды, чтобы программировать там. Вещь немного сложноватая, так и не дошел до изучения

PhilB
12-06-2012, 17:38
Если речь идет о графическом пользовательском интерфейсе, то можно и использовать напрямую функции иксов. Документация есть, так что, если есть желание с этим можно поразбираться.
и можно ли обойтись чистым си без всяких либ? »
Не очень понятно, о каких либах речь? В любом случае нужны либы иксов. Что касается gtk/Qt, то пользователь чаще всего используют какие-либо оболочки. Если используется gnome - то gtk библиотеки уже есть. Если kde - то Qt.
На самом деле, на мой взгляд, в линуксе об этом вообще думать не надо - эти библиотеках есть в репозитариях обязательно. (В отличие от винды, там надо библиотеки распространять в дистрибутиве программы). Да и весят не так много.
По большому сечту, для большинства задач использование напрямую функций иксов особого смыла не имеет. Это излишнее исложнение и потеря кросплатформенности.
Также как и в винде, winApi - это жуть редкостная. Сплошной не unix-way. Даже мелкософт не рекомендует использовать winApi и уже давно городит всякие надстройки, начиная от MFC, заканчивая .Net.

Alexey_Sheludchenko@fb
14-06-2012, 14:07
я имею в виду если мне надо открыть привод для этого есть стандартная или у gtk своя у qt своя

vadblm
14-06-2012, 14:47
открыть привод »
Команда eject. Показать её исходник или сами найдёте? Всё написано до нас. :)

PhilB
14-06-2012, 15:28
или у gtk своя у qt своя »
Вы должны понимать, что есть разные уровни системы.
Примерно так: Системные вызовы -> Библиотечные фукнции -> Высокоуревные фукнции.
Вы можете взаимодействовать с любыми из вышеперечисленного. Для того чтобы улучшить показатели качества ПО, над низкоуровненевыми функциями пирамидкой надстраиваются высокоуровневые. То есть по сути функции более высоких уровней используют функции более низких.
Поэтому, независимо от того, с каким уровнем вы взаимодействуете, фактически вы получите один и тот же реультат. В данном примере - вызов апаратного прерывания, которое и приведет к выбросу привода.

Alexey_Sheludchenko@fb
15-06-2012, 16:38
Команда eject. »
если уж на то пошло скажите и как закрыть с консоли!

PhilB
15-06-2012, 18:54
eject -t

Alexey_Sheludchenko@fb
15-06-2012, 22:57
cпасибо!
вообще я начал эту тему потому ,что мне непонятно можно ли обойтись функциями ядра я ведь не собираюсь программировать графику , а только консоль




© OSzone.net 2001-2012