-
Постов
914 -
Зарегистрирован
-
Посещение
Никогда
Сообщения, опубликованные EL[michlen]
-
-
Есть куча видов IPC:
* Полудуплексные каналы UNIX
* FIFO (именованные каналы)
* Очереди сообщений в стиле SYSV
* Множества семафоров в стиле SYSV
* Разделяемые сегменты памяти в стиле SYSV
* Сетевые сокеты (в стиле Berkeley)
* Полнодуплексные каналы (каналы потоков)
(см. Linux Programmer's Guide, Scott Burkett)
Может синхронизировать это по каналам? Скажем, ребенок изредка спрашивает родителя: "Чувак, ты еще жив?", на что родитель должен ответить: "Да живая я, спокуха!" =)
Ну или отслеживать Process ID.
-
В Debian существует великая программа dselect. Наверняка она есть в этих ста метрах.
-
Я бы посоветовал прочитать книжку "Linux Device Drivers" (O'Reilly); авторы: Alessandro Rubini, Jonathan Corbet; 573 стр., доступна где-то в инете в виде PDF.
-
В комментарии к форуму Gentoo Linux опечатка:
Цитата: Обсуждение дистрибутивов Dentoo Linux
-
Цитата: пользователь запустил скрип со своими привелегиями
Такое возможно, если пароль для su прописать в самом скрипте. Если боитесь, что юзер будет просматривать текст скрипта, можно записать туда пароль в закодированном виде. Например, методом
// Пример на С для наглядности: char *code(char *str2code, char *code2use) { // str2code - строка, которую мы кодируем // code2use - некая строка, которую мы используем в качестве кода while (strlen(str2code) > strlen(code2use)) { strcat(code2use,"A"); // Если длина кода меньше, чем строка, увеличиваем эту длину } for (int i=0; i<strlen(str2code); i++) { str2code = str2code ^ code2use; // Собственно, кодирование =) } return str2code; } /* В данном случае для декодирования строки используется эта же функция. При другом code2use, оригинальную строку мы уже не получим, т.е. нужно использовать один и тот же код для кодирования и декодирования (можно задать его константным, а можно использовать для разных пользователей). */
а при выполнении su декодировать его и передавать на ввод su, таким образом избегая его явного просмотра. Тогда в этом сможет разобраться только программист, хотя это и несложно.
-
Здесь собрано чуть-чуть:
http://michlen.nm.ru/linux_modules.html
(скачано с ныне покойного сайта журнала "Программист")
-
Можно попробовать установить FocusPolicy в значение NoFocus.
See QT3 manual (http://www.trolltech.com) for details - there are lot's of samples.
P.S. Sorry for english - got no rus keyboard at the moment.
-
В какой среде? KDE/QT, Gnome/Gtk+, XLib, Java или что?
-
В системе уже должен стоять откомпилированный QT, т.к. KDE использует его библиотеки. Компилировать KDE нужно уже после QT.
О взаимодействии родственных процессов
в Программирование: *nix
Опубликовано
Самый простой и логичный способ - использовать сокеты или следить за PID-ом. Можно сделать двухпоточного ребенка, где один поток следит за PID-ом родителя (getppid() в цикле), а другой ждет сигнала. Если родитель помер, первый сам посылает второму какой-нибудь сигнал, раз уж надо его разбудить. =) То же самое с сокетами.
Еще есть функция atexit() (см. man), но она работает только при нормальном завершении, при сигнале KILL и т.п. она не выполнится. А еще, по-моему, можно использовать select для синхронизации между процессами по pipe-ам.