prijem ctrl-c pres soket
Petr Pisar
petr.pisar na atlas.cz
Čtvrtek Prosinec 8 22:33:03 CET 2005
Michal Vojan napsal(a):
> Petr Pisar wrote:
>
>>Pavel Kankovsky napsal(a):
>>
>>>On Thu, 1 Dec 2005, Michal Vojan wrote:
>>>
>>>>chtel bych umet prijimat signaly typu ctrl-c, kdyz se ke svemu programu
>>>>pripojim pres soket. Napr. pomoci telnetu se pripojim, zadam par prikazu
>>>>a pak se pomoci ctrl-c chci odpojit. Namisto toho se mi program zastavi,
>>>>dokud nestisknu enter. Mam neco nastavit u soketu? Nebo nekde jinde. Diky
>>>
>>>
>>>Kdyz zmacknete Ctrl+C, tak to zpracuje samotny program telnet a promeni
>>>ho na ridici sekvenci telnetoveho protokolu konkretne znaky s kodem 255
>>>(IAC) a 244 (IP = Interrupt Process) (krome toho jeste posilal vyzvu,
>>>kterou se pokousi vyjednat pouzit nejakeho rozsireni, ale asi uplne
>>>dulezite). Ovsem pokud ctete text po radcich, tak to pochopitelne hned
>>>neuvidite, protoze se to jen nacpe do nejakeho bufferu.
>>
>>A neodesila se to jako out-of-band data? Pak by tyto znaky mohl
>>zpracovat "okamzite", ne?
>
>
> Zda se, ze se tam nejaka takova data odesilaji. Vi nekdo, jak se takova data
> obsluhuji? Na neco se musi dat reagovat, nebot po stisku ctrl-c se mi cely
> program zastavi. nebo ne?
>
recv(int s, void *buf, size_t len, int flags), kde flags ma nastaveny
bit konstantou MSG_OBB. Vice v manualu recv(2).
--Petr
Další informace o konferenci Linux