The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Oracle OCCI при подключении Segmentation fault, !*! sergf, 21-Сен-05, 13:01  [смотреть все]
Подключение к БД как-то влияет на разделяемую память???
Oracle 9.2.0, Linux RH 7.2.
-------------------------------------------------------------------
int main(int argc, char* argv[])
{
Environment* env;
env = Environment::createEnvironment(Environment::OBJECT);
}
проходит нормально.
-------------------------------------------------------------------
int main(int argc, char* argv[])
{
int fp, i;
int id[5];  
char *shm[5];      
// подключение к RRP
if ( (fp = open ( "/tmp/shmem.dat",O_RDONLY)) == -1 ) return ( 2 );                    
read ( fp, id, sizeof ( id ));
read ( fp, shm, sizeof ( shm ));
close ( fp );

for ( i = 0; i < 5; i++ )
{
    if ( shm[i] != shmat ( id[i], shm[i], 0 ) ) return ( 3 );
    printf("\n id[%d] = %d, shm[%d] = %d", i, id[i], i, shm[i] );
}
}
-------------------------------------------------------------------
Тоже проходит нормально.

А когда вместе:

int main(int argc, char* argv[])
{
int fp, i;
int id[5];  
char *shm[5];      

Environment* env;
env = Environment::createEnvironment(Environment::OBJECT);

if ( (fp = open ( "/tmp/shmem.dat",O_RDONLY)) == -1 ) return ( 2 );                    
read ( fp, id, sizeof ( id ));
read ( fp, shm, sizeof ( shm ));
close ( fp );
for ( i = 0; i < 5; i++ )
{
    if ( shm[i] != shmat ( id[i], shm[i], 0 ) ) return ( 3 );
    printf("\n id[%d] = %d, shm[%d] = %d", i, id[i], i, shm[i] );
}
}

после запуска выводит 4-е строки, а на 5-ой
даёт: Segmentation fault.
------------------------------------------------------------------------
Получается, что createEnvironment как то влияет на SHARED MEM?
Подскажите хотябы где копать?





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру