Member
Статус: Не в сети Регистрация: 26.09.2007 Откуда: берутся дети?
здравствуйте! подскажите, пожалуйста, в чем баг:
есть сервер который открывает
int fd = open( "LOG.txt", O_WRONLY | O_NDELAY )
канал(заранее созданный) и пишет в него
некоторые данные(через write(...))
int main() { int fd; char buff[256]; if( (fd = open( "LOG.txt", O_RDONLY )) < 0) { cout << "error opening of fifo" << endl; return -1; } int num = read( fd, buff, 20 ); //читаем 20байт buff[21]= '\0'; //признак конца строки cout << buff << endl; //выводим что прочитали - а в итоге почему-то выводятся как будто \n\n cout << "got "<< num <<" bytes"<<endl; //а вот тут правильно отображается - got 20 bytes close(fd); return 0; }
почему-то вывод выглядит
Код:
got 20 bytes
то ли данные неправильно читаются, то ли я не могу вывести содержимое буфера
пс проблема в сервере маловероятна - так как если пытаться писать не в fifo а в обычный файл(сначала открыть через (fd = open( ''LOG.txt", O_RDWR | O_APPEND | O_CREAT, S_IWRITE | S_IREAD )) - то файл заполняется нужными байтами Добавлено спустя 1 час, 18 минут, 49 секунд
tenzor писал(а):
здравствуйте! подскажите, пожалуйста, в чем баг:
есть сервер который открывает int fd = open( "LOG.txt", O_WRONLY | O_NDELAY ) канал(заранее созданный) и пишет в него некоторые данные(через write(...))
int main() { int fd; char buff[256]; if( (fd = open( "LOG.txt", O_RDONLY )) < 0) { cout << "error opening of fifo" << endl; return -1; } int num = read( fd, buff, 20 ); //читаем 20байт buff[21]= '\0'; //признак конца строки cout << buff << endl; //выводим что прочитали - а в итоге почему-то выводятся как будто \n\n cout << "got "<< num <<" bytes"<<endl; //а вот тут правильно отображается - got 20 bytes close(fd); return 0; }
почему-то вывод выглядит
Код:
got 20 bytes
то ли данные неправильно читаются, то ли я не могу вывести содержимое буфера
пс проблема в сервере маловероятна - так как если пытаться писать не в fifo а в обычный файл(сначала открыть через (fd = open( ''LOG.txt", O_RDWR | O_APPEND | O_CREAT, S_IWRITE | S_IREAD )) - то файл заполняется нужными байтами
всё пучком, разобрался тему можно удалять
_________________ "если бы люди не делали глупостей, ничего умного бы так и не появилось."
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения