Подскажите плиз. Я попробовал скомпилять проект с ключем -О2, в проекте часто используется форк, обработчики сиигналов и семафоры. Глюки пошли не описуемые. Я часа четыре глюки искал. Не нашел. Убрал этот поганый ключ и все заработало. Хотелось бы выяснить. Это глюки РедХатовского gcc - 2.96(я слышал что вещь крайне неудачная) или нельзя в принципе этот ключ в описанной ситуации применять?
Вопрос такой. Есть сервер. Надо получить адреса всех интерфейсов подрубленных к сети. экзэкать ifconfig а потом ловить и разгребать его вывод не подходит, так как пошловато выглядит. Может есть какая-нить функция?
Нужно написать функции для процессов, которые анаогичны функциям pthread_mutex_lock и pthread_mutex_unlock для pthreads, только через семафоры.
Прочитал в ALP про IPC. Возможно не все просек.
Делал так.
/* Obtain a binary semaphore s ID, allocating if necessary. */
int binary_semaphore_allocation (key_t key, int sem_flags) {
return semget (key, 1, sem_flags);
}
/* Deallocate a binary semaphore. All users must have finished their use. Returns -1 on failure. */
int binary_semaphore_deallocate (int semid) {
union semun ignored_argument;
return semctl (semid, 1, IPC_RMID, ignored_argument);
}
int binary_semaphore_initialize (int semid) {
union semun argument;
unsigned short values[1];
values[0] = 1;
argument.array = values;
return semctl (semid, 0, SETALL, argument);
}
/*Это lock*/
int binary_semaphore_wait (int semid) {
struct sembuf operations[1];
/* Use the first (and only) semaphore. */
operations[0].sem_num = 0;
/* Decrement by 1. */
operations[0].sem_op = -1;
/* Permit undo ing. */
operations[0].sem_flg = 0;
return semop(semid, operations, 1);
}
/* Это unlock*/
int binary_semaphore_post (int semid) {
struct sembuf operations[1];
/* Use the first (and only) semaphore. */
operations[0].sem_num = 0;
/* Increment by 1. */
operations[0].sem_op = 1;
/* Permit undo ing. */
operations[0].sem_flg = 0;
return semop (semid, operations, 1);
}
binary_semaphore_wait (mx_hash_semaphore);
//Критические действия
binary_semaphore_post (mx_hash_semaphore);
Но при таком раскладе все чилды иногда зависают на wait и не отвисают :((((
Подскажите что-нить полезное....
Задача ведь часто встречающаяся.
Или можете прислать аналогичные функции на v_dav@inbox.ru
Проблемка такая. Ворд не хотит сохранять файлы. Выдает Ошибку, что либо слишком много открытых файлов, либо нету места на диске. И так на всех дисках. Хотя сам файл создает, но нулевого размера. Думаю это не только в ворде. Рылся в конфиге вина, но что-то не нашел.Юзер, от которого запускаю, имеет доступ на запись. Наверное где-то что-то упустил. Подскажите плиз. Наверно это все очень просто решается. Конфиг генерился сам при установкe ./tools./wineinstall Могу куски показать, там где диски описаны. Quake 2 и 3 вешается при загрузке, видно какой-то темп-файл создать не может. WINE REGISTRY Version 2 ;; All keys relative to \\Machine\\Software\\Wine\\Wine\\Config
При монтировании виндовой шары типа mount -t smbfs //172.31.3.91/share /mnt/smb; вроде как все нормально. Но при попытке войти потом в точку монтирования консоль намертво вешается, всяческие браузеры тоже. :( LinNeighborhood тоже вешается. Все это пробовал не только на своей машине , но и на другой машине с другой сеткой. Таже беда если попытаться смонтировать собственную самбовую шару. С другими дистрами все было нормально. Такое ощущение, что проблемы в ядре. Кто - нибудь сталкивался с подобной проблемой? Как решать?
Кто-нибудь знает где про это можно почитать. И есть ли стандартное средство по созданию файлов .po Подскажите КАК ЭТО ВСЕ ПРИКРУЧИВАТЬ К ПРОЕКТУ??? В инете ничего не нашел :(
Имею опыт написания драйверов для Linux. Соберу linux-дистрибутив спец назначения (embedded systems). C удовольствем подключусь в какой-нибудь проект, можно и opensorce. Удаленно или в Минске.
Имею опыт написания драйверов для Linux. Соберу linux-дистрибутив спец назначения (embedded systems). C удовольствем подключусь в какой-нибудь проект, можно и opensorce. Удаленно или в Минске.