PDA

Просмотр полной версии : ###Программирование под LINUX###


Cursed_Warlock
10-11-2003, 20:47
Хотелось бы знать, что думает по этому поводу общественность... Я в линуксе новичок (примерно с год). Сначала не понравилось - уж больно все сложно оказалось, а потом привык... т.к. долг обязывает (программист) пришлось проги под линукс писать. Увидел, что все это круто...

Cursed_Warlock
10-11-2003, 20:49
То есть я хотел, чтобы здеся впечатлениями делились, там всякими историями... :-) В общем поддержите топик, темка то хорошая!!!

mulk
10-11-2003, 20:55
:D Да уж................. (с) Киса Воробьянинов

LaGrange
10-11-2003, 20:59
Зачем ставить "###" ? Типа уфимские линуксоиды считают что это модно?

А темка так себе, что тут интересного ? Я всегда программировал под *nix(не считая школу ), и как можно писать под винду, слабо представляю )).

Cursed_Warlock
11-11-2003, 20:07
***Я всегда программировал под *nix(не считая школу ), и как можно писать под винду, слабо представляю )).*** - чесно говоря программирование под винду suck's... но некоторым людям приходится. Что делать, если проги пишешь для юзеров??? - не только свой опыт.

Cursed_Warlock
11-11-2003, 20:09
Ктати, сем эта тема хуже темы ###Все про LINUX###???
Лично я задумывал ее как продолжение вышеуказанной...

Матроскин
13-11-2003, 10:14
Бля, винда - сакс! Да заипали вы с этим лозунгом! Руки кривые!
добавленно
Да и под *nix криворуких программеров достаточно, наверное те, которые не смоги с виндой спрваиться, поначитались всякой ерунды, решили что там всек легко и просто и ломанулись :mad: Вот теперь и сидят дятлы.

nilbog
13-11-2003, 11:00
Винда не скакс! а ОЧЕНЬ ОЧЕНЬ дорого и слабо надежно

nilbog
13-11-2003, 11:01
Вообщето тема пустая закрывать ее надо

Матроскин
13-11-2003, 11:16
Ну ХЗ, заранее ничего не известно, может и разовьется во что-нибудь стоящее. Только не надо орать пустые лозунги, глюки есть везде. 70% от программера зависит.
Гы, ветку надо переименовать в "Программирование под Linux, или кривые ручки угробят все!" :D

nilbog
13-11-2003, 11:57
В теме ###Все про LINUX###??? написанно что такое глюк. И как показывает практика 100% их содержится в винадх. Уж поверь мне на слово как человеку который помнит и NT 3.5 и имеет херову тучу бумажек-сертификатов от дяди билли по 2000 виндам и подпорок к ним и участвовал в бетта тестировании 2000 виндовоза.
Но вот работать приходится на Linux-е. т.к. альтернативы я не вижу.

Nameless
13-11-2003, 13:53
На самом деле, таки можно. Но паскудно. Win32 API - качмар. Даже naming convention придумать поленились. Венгерская нотация - идиотизм, других слов нет :]] Ave POSIX! ;]]

Cursed Warlock
18-11-2003, 22:34
Надо готовиться к школьной олимпиаде... эти дигроды-училки говорят мол олимпиада по паскалю будет, я так и обалдел. Ну ладно думаю освоим паскаль...:-).... А там такой поп... опосля Си, крутого такого всего навороченного не воспринимает мой организм эту тюгомотину... черт, а ведь придется осваивать!!!
P.S.
Так тяжело без неявного преобразование типов кто бы знал!!!

LaGrange
19-11-2003, 01:36
Молодой человек, думаю надо быть более сдержанным в своих высказываниях...
Какая разница на чем писать? Школьные олимпиады так и составляются, чтобы зависимость от ЯП была наименьшей. Знания по математике пригодятся намного больше, чем знание синтаксиса какого-нибудь еще языка. В большинстве классических учебников в качестве ЯП берется псевдоязык, с синтаксисом похожим на Паскаль.

ЗЫ: причем тут программирование под слюникс не секу...

Cursed Warlock
08-12-2003, 22:11
Ну не нравится мне синтаксис Pascal... ну совсем не нравится. Не вешаться же теперь, тем более скажите мне кто на Pascal сейчас пишет??? :confused:

Winky
08-12-2003, 22:36
это ты как пащитал?

LaGrange
08-12-2003, 23:51
скажу - большинство школьников. Еще раз внимательно прочти мой предыдущий пост.

Lucky_4ever
11-12-2003, 13:08
Всякие Programming Junior Member'ы и пишут. Будь снисходительнее. Может ты хочешь чтобы все с С программировать начинали :(((((.

Cattus Noctumus
17-12-2003, 18:18
Было бы неплохо.

Cursed Warlock
07-01-2004, 15:38
Как считают наши заядлые кодеры Си+Tcl/Tk - хорошая идея???
З.Ы
Хочу просто графические библиотеки использовать из под С...

Cursed Warlock
07-01-2004, 15:41
Может ты хочешь чтобы все с С программировать начинали - Lucky_4ever.

А что тут такого сверхестественного??? Сам-то ты с чего проги писать начинал??? (небось - Паскаль :-)...)

Cursed Warlock
07-01-2004, 23:20
Кто подскажет функцию небуферизованного ввода на Си (разумеется под Линукс, хотя, если вы обременены столь тяжкими познаниями и можете написать тоже самое и под Винды, я буду вам премного благодарен... :D )...

Плиз, откликнитесь!!!

LaGrange
07-01-2004, 23:51
Если Вы хотите непосредственно вводить символы, используйте функцию getchar() При использовании этой функций ввод не может быть перенаправлен. Символы всегда выводятся на экран, а считываются с клавиатуры.

Или что то же самое getc(stdin). man getc
SEE ALSO

setbuf(3)

ЗЫ: как же запарили бакланы, кидающие пальцы и использующие выделение текста сообщения цветом не по делу :mad:

ЗЗЫ: слова lunguage в английском языке нет, изучите для начала английский, молодой человек

boco
08-01-2004, 01:41
http://faqs.org.ru/os/unix/ruunix.htm

Cursed Warlock
09-01-2004, 23:11
Извините за некорректно заданный вопрос. Уточняю: меня интересует не небуферизованный ввод, а немного другое - функция, считывающая символы (или строки символов) со стандартного ввода (или перенаправленного), которая сканирует символы, не ожидая символа - '\n' .

З.Ы.
To LaGrange - не понял причем тут перенаправление ввода\вывода???

LaGrange
09-01-2004, 23:51
такой библиотечной функции не существует, afaik. Если не прав - поправьте.
Библиотечные функции тем и отличаются от системных вызовов, что используют буферизацию(по умолчанию построчную, (printf)). Не нужна буферизация - используйте системные вызовы read/write/
А вообще стоило бы почитать мануал по setbuf, если хотите использовать
printf.

например так
--
setvbuf(stdin, (char *)NULL, _IONBF, 0)
--


man man
man read
man write
man setbuf

Если у Вас проблемы с английским(что очевидно), то
http://man.opennet.ru

Вы, по-моему, очень многого не понимаете.

Cursed Warlock
10-01-2004, 09:09
Спасибо за совет, попробуем.

Cursed Warlock
12-01-2004, 00:55
Попробовал я этот системный вызов "read" - эффект тот же, что и у остальных функций чтения символов. Ты сам-то хоть пробовал этим вызовом пользоваться? Если пробовал уважаемый LaGrange, и все получалось, и разумеется, если это не большой военный тайна, напиши его приминение или исходник коротенький скинь что-ли... можешь в конференцию, а можешь сюды - warlockbox@list.ru

LaGrange
12-01-2004, 05:22
ммм.. УФАжаемый..
Вы мой друг/приятель/близкий человек/ ? или быть может Вы старше меня, или Вы девушка ? нет ? Так что же Вы мне "тыкаете "???

а теперь по делу
знаете, я Вас неправильно понял, и с толку сбил, поэтому сорри .
(Вы мне про Фому, я Вам про Ерему)

В Вашем случае следует копать в сторону curses, imho.

curses (Словарь: Компьютерный англ.)
Обязательные или вынужденные действия.

Для этого следует подключить библиотеку
curses.h, и программа должна быть отлинкована с опцией
-lncurses. код, ну что типа этого.

comments:

raw()
Normally the terminal driver buffers the characters a user types until a new line or carriage return is encountered. But most programs require that the characters be available as soon as the user types them. This function is used to disable line buffering.

^^ если на этот раз я Вас правильно понял, то именно этого Вы и хотели.
За более полной обращаться к man ncurses (new curses) && google.com

Возможно Вам потребуется установить библиотеку, тарбол скачать можно например здесь :
http://dickey.his.com/ncurses/ncurses.html



P.S.: ветка превратилась в разговор двух людей:(
Дамир, Олег, Фарит, вы добавить/поправить ничего не хотите ? а то я тут челу rtfm, и как оказалось не по делу ;)

boco
12-01-2004, 10:06
я уже давал выше ссылку на ru.unix faq. в частности, там написано вот это:

Cursed Warlock
12-01-2004, 12:43
Очень рад, что мы наконец поняли друг друга - спасибо за информацию! Вы мне очень помогли LaGrange. Будем пробовать...

Все превосходно работает!!! Большое пасиба за совет boco и LaGrange. Правда у меня возникли некоторые вопросы по функции raw()...

Нельзя ли как-нибудь обойтись без библиотеки "curses.h"??? Или может быть существуют иные библиотеки?

boco
13-01-2004, 19:58
man termios
man read

Cursed Warlock
13-01-2004, 20:11
Спасибо за полезную информацию boco и LaGrange - помогли ламеру... Всех поздравляю со Старым Новым Годом!!!!!!!!!!!! Да запоставится на ваши компы Fedora Core... :-)

Cursed Warlock
26-01-2004, 17:16
Хоть это и ротиворечит топику, люди помогите разобраться в этом коде:

==============================================
#include <windows.h>

LRESULT CALLBACK HelloWorldWndProc(HWND,UINT,UINT,LONG);

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpszCmdParam, int nCmdShow)
{
HWND hWnd;
WNDCLASS WndClass;
MSG Msg;
char szClassName[]="Hello world!";
WndClass.style=CS_HREDRAW|CS_VREDRAW;
WndClass.lpfnWndProc=HelloWorldWndProc;
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
WndClass.hInstance=hInstance;
WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
WndClass.hbrBackground=(HBRUSH) GetStockObject(WHITE_BRUSH);
WndClass.lpszMenuName=NULL;
WndClass.lpszClassName=szClassName;

if(!RegisterClass(&WndClass))
{
MessageBox(NULL,"Can not register class","error",MB_OK);
return (0);
}

hWnd=CreateWindow(szClassName,"Program No 1",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAUL T,N ULL,NULL,hInstance,NULL);
if(!hWnd)
MessageBox(NULL,"Can not create window","error",MB_OK);
return 0;

//Show our window
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);


//Begining of messages cycle
while(GetMessage(&Msg,NULL,0,0))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return (Msg.wParam);
}

LRESULT CALLBACK HelloWorldWndProc(HWND hWnd,UINT Message,UINT wParam,LONG lParam)
{
HDC hDC;
PAINTSTRUCT PaintStruct;
RECT Rect;
switch(Message)
{
case WM_PAINT:
MessageBox(NULL,"Message was catched!","Hello?",MB_OK);
hDC=BeginPaint(hWnd,&PaintStruct);
GetClientRect(hWnd,&Rect);
DrawText(hDC,"Hello world",-1,&Rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
EndPaint(hWnd,&PaintStruct);
return 0;

case WM_DESTROY:
MessageBox(NULL,"Message was catched!","Hello?",MB_OK);
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd,Message,wParam,lParam);
}
==============================================
По идее - это типичный HELLOWORLD!, но при выполнении этого кода вообще ничего не происходит!!! Не вылезает окно - ничего??? Памагите.... :(