Есть такая проблема, некое устройство обменивается с компом данными по RS232. Есть только три вида посылок, размерами 9, 3 и 34 байта. Необходимо определить какая пришла посылка и заполнить соответствующую структуру. Система Linux Slackware 9.0. Порт я открываю так:
Написал tcp-сервак. Для каждого подключения я делаю fork и оно варится самостоятельно. После завершения сеанса - close(socket) и exit(0). Все хорошо, все работает, только после каждого коннекта к серваку, дочерние процессы переходят в состояние Z (зомби), а после окончания работы родителя - они пропадают. Кто-нибудь может обьяснить почему так происходит и как этого избежать. Система - Slackware 9.0.
1) Есть программа, которая создаёт на монтируемом разделе каталог, в нём некий файл, пишет в него всякую чушь и изменяет свою рабочий каталог на созданный.
2) Есть пользователь, который с помощью команды "umount -F /mnt2" размонтирует этор раздел.
3) Как я понял, в результате этого действия программе, а точнее процессу, отправляется сигнал SIGSEGV.
Вопрос: почему при размонтировании не срабатывает установленный обработчик сигнала (он отзывается только на "kill -SIGSEGV [pid]"), и что происходит с открытыми файлами(через функцию open).
Вот что я делаю:
static void sig_hndlr(int signo)
{
...
}
main()
{
struct sigaction act;
act.sa_handler=sig_hndlr;
sigfillset(&act.sa_mask);
act.sa_flags=0;
if (sigaction(SIGSEGV, &act, NULL) < 0)
exit(0);
Хочу поставить сабж, но линух не может работать с таким винтом. Пробовал указывать параметр lba32 - начинает ругаться на неизвестный параметр. Кто-нибудь знает как его победить ?
Есть задача: надо написать демона, который отслеживает перемещения юзера по каталам (только в консоле) и пишет пути в лог. Признаюсь честно, опыта программирования под линукс у меня почти что нет. Сам демон не проблема, проблема в определении каталога в котором находится юзер. Из досовского прошлого всплыла идея о перехвате системного вызова. Это как вообще реально сделать или нет (если реально, то как). Если нет, то буду благодарен за любые идеи.
Никак не могу заставить работать горячие клавиши (типа Alt-TAB - переключение между приложениями), хотя прописано все вроде верно. Может кто знает в чем дело?
Никак не могу настроить модем(ZyXEL Omni 56K Plus) для работы в инете(Netscape: "Can not connect remote host"). На компе также стоит сетевуха(3 COM EtherLink XL 10/100 PCI for Complete PC Managment NIC 3C905C-TX). Вот конфиги:
А вот логи: /var/log/messages May 28 11:10:50 server pppd[1478]: pppd 2.4.1 started by spiro, uid 500 May 28 11:10:51 server chat[1479]: timeout set to 5 seconds May 28 11:10:51 server chat[1479]: send (AT&F^M) May 28 11:10:51 server chat[1479]: expect (OK) May 28 11:10:51 server chat[1479]: AT&F^M^M May 28 11:10:51 server chat[1479]: OK May 28 11:10:51 server chat[1479]: -- got it May 28 11:10:51 server chat[1479]: send (ATM1L1^M) May 28 11:10:52 server chat[1479]: expect (OK) May 28 11:10:52 server chat[1479]: ^M May 28 11:10:52 server chat[1479]: ATM1L1^M^M May 28 11:10:52 server chat[1479]: OK May 28 11:10:52 server chat[1479]: -- got it May 28 11:10:52 server chat[1479]: send (ATDP9W8,9955555^M) May 28 11:10:52 server chat[1479]: abort on (BUSY) May 28 11:10:52 server chat[1479]: abort on (NO ANSWER) May 28 11:10:52 server chat[1479]: abort on (NO DIALTONE) May 28 11:10:52 server chat[1479]: abort on (ERROR) May 28 11:10:52 server chat[1479]: timeout set to 90 seconds May 28 11:10:52 server chat[1479]: expect (CONNECT) May 28 11:10:52 server chat[1479]: ^M May 28 11:11:50 server chat[1479]: ATDP9W8,9955555^M^M May 28 11:11:50 server chat[1479]: CONNECT May 28 11:11:50 server chat[1479]: -- got it May 28 11:11:50 server chat[1479]: send (^M) May 28 11:11:51 server chat[1479]: timeout set to 15 seconds May 28 11:11:51 server chat[1479]: expect (ogin:) May 28 11:11:51 server chat[1479]: 115200/V.34 21600/V42b^M May 28 11:11:51 server chat[1479]: ^M May 28 11:11:51 server chat[1479]: Welcome to MTU-Online phones:^M May 28 11:11:51 server chat[1479]: 995-5555(K56flex,V.90),995-5556(x2,V.90)^M May 28 11:11:51 server chat[1479]: Login as "guest" with password "mtu" for beginning^M May 28 11:11:51 server chat[1479]: and go to http://dialup.mtu.ru for registration^M May 28 11:11:51 server chat[1479]: Use proxy.mtu.ru with port 3128, DNS 195.34.32.11(10)^M May 28 11:11:51 server chat[1479]: ^M May 28 11:11:51 server chat[1479]: APAS10 line 67 ^M May 28 11:11:51 server chat[1479]: ^M May 28 11:11:51 server chat[1479]: ^M May 28 11:11:51 server chat[1479]: User Access Verification^M May 28 11:11:51 server chat[1479]: ^M May 28 11:11:51 server chat[1479]: login: May 28 11:11:51 server chat[1479]: -- got it May 28 11:11:51 server chat[1479]: send (guest^M) May 28 11:11:51 server chat[1479]: expect (word:) May 28 11:11:51 server chat[1479]: ^M May 28 11:11:51 server chat[1479]: login:guest^M May 28 11:11:51 server chat[1479]: Password: May 28 11:11:51 server chat[1479]: -- got it May 28 11:11:51 server chat[1479]: send (mtu^M) May 28 11:11:51 server chat[1479]: expect (PPP) May 28 11:11:51 server chat[1479]: ^M May 28 11:11:52 server chat[1479]: Entering PPP May 28 11:11:52 server chat[1479]: -- got it May 28 11:11:52 server pppd[1478]: Serial connection established. May 28 11:11:52 server pppd[1478]: Using interface ppp0 May 28 11:11:52 server pppd[1478]: Connect: ppp0 <--> /dev/modem May 28 11:11:54 server pppd[1478]: not replacing existing default route to eth0 [192.168.0.254] May 28 11:11:54 server pppd[1478]: local IP address 192.168.0.10 May 28 11:11:54 server pppd[1478]: remote IP address 212.30.161.10