Не получается использовать fdopen на втором сокете полученном от socketpair.. Ошибка - Неверная операция смещения.
extern volatile sig_atomic_t terminate;
FILE *netstatd()
{
int fds[2];
FILE *in,*out;
int rc;
char buffer[512];
rc=socketpair(AF_UNIX,SOCK_STREAM, PF_UNSPEC, fds);
if (rc<0)
return NULL;
in=fdopen(fds[0],"r+");
if (!in) //Тут все отрабатывает нормально
{
close(fds[0]);
close(fds[1]);
return NULL;
}
out=fdopen(fds[1],"r+");
if (!out); // Вот тут ошибка!
{
syslog(LOG_WARNING,"fdopen %s\n",strerror(errno));
close(fds[1]);
close(fds[0]);
fclose(in);
return NULL;
}
setvbuf(out,NULL,_IONBF,0);
setvbuf(in,NULL,_IONBF,0);
rc=fork();
if (rc==-1)
{
fclose(in);
fclose(out);
return NULL;
}
else if (rc!=0)
{
fclose(out);
return in;
}
//child
fclose(in);
setproctitle ("netstatd");
while (!feof(out) && !terminate)
{
if (fgets(buffer,sizeof(buffer),out))
{
if (terminate)
{
syslog(LOG_WARNING,"terminating\n");
break;
}
syslog(LOG_DEBUG,"%s\n",buffer);
}
}
_exit(0);
}

Ответ на:
комментарий
от rymis


Ответ на:
комментарий
от OxiD

Ответ на:
комментарий
от Eshkin_kot

Ответ на:
комментарий
от OxiD
Ответ на:
комментарий
от OxiD

Ответ на:
комментарий
от OxiD

Ответ на:
комментарий
от php-coder
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Си /*ошибка сегментирования */ (2009)
- Форум C socket fdopen вечный/долгий fgets при запросе с chrome android (2020)
- Форум [pipe] ftp не хочет общатся через два пайпа (2009)
- Форум Ошибка при компиляции (2015)
- Форум немогу запустить Xvfb через fork + execl (2021)
- Форум [C][FIFO] Чатик, не ходят данные (2011)
- Форум создание дочерних процессов_ (2010)
- Форум pthreads help (2004)
- Форум Работа с сокетами в C (2010)
- Форум Да помогите вы мне с этим wav-player'oм!!! (2003)