Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2016, 17:10   #1
gunsoy
Форумчанин
 
Регистрация: 30.12.2010
Сообщений: 280
Вопрос Проблемы с fopen

Здравствуйте.

Решил на самописном сервере создать лог, который записывает в файл сокет пользователя и header(то есть тип сообщения которое он отправляет).

Код:
            //После того как от пользователя приходят какие-либо данные, сразу же записываю в лог сокет пользователя и header
            std::stringstream tcpqss;
            tcpqss << tcpq;
            std::string file_stroka = "\n";
            file_stroka += strHeader + " " + tcpqss.str();
            FILE * fpd;
            fpd = fopen("log/log.txt", "ab");
            fwrite(file_stroka.c_str(), sizeof(char), file_stroka.length(), fpd);
            fclose(fpd);
В начале работает как надо, но потом просто перестаёт записывать данные в файл, хотя сервер продолжает их обрабатывать и отправлять клиенту. В коде приведённом выше strHeader и tcpq не являются пустыми, так как именно от этих переменных зависит как будут обработаны данные и кому они будут отправлены, то есть всё работает. На клиенте с логом происходит то же самое, то есть в файл через некоторое время перестают записываться данные, хотя приложение продолжает работать правильно.

Не могу понять почему так происходит. Подскажите пожалуйста что может быть не так?

Вот для наглядности содержимое лог-файла log.txt

Код:

putk 5
auth 5
aesk 5
setu 5
loci 5
luse 5
aren 5
ared 5
ares 5
putk 8
auth 8
aesk 8
setu 8
loci 8
luse 8
aren 8
arev 8
arre 8
argo 5
fini 8
fini 5
fkey 8
fkey 5
ffgo 5
fkey 5
ffgo 5
fkey 5
ffgo 5
fkey 5
После этого в файл ничего не пишется.
gunsoy вне форума Ответить с цитированием
Старый 17.02.2016, 17:49   #2
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
Не могу понять почему так происходит. Подскажите пожалуйста что может быть не так?
Что не так?
Как минимум нет обработки ошибок, вот что не так!
Croessmah вне форума Ответить с цитированием
Старый 17.02.2016, 20:55   #3
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

file_stroka.length(), возможно, в какой-то момент начинает выдавать постоянное значение, т.е. длина строки перестаёт расти.

и вообще по-дебильному тут всё как-то...
открывай файл как текстовый, раз пишешь в него текст.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 20.02.2016, 14:36   #4
gunsoy
Форумчанин
 
Регистрация: 30.12.2010
Сообщений: 280
По умолчанию

Проблема была в текстовом редакторе CodeBlocks с помощью которого я просматривал содержимое файла и который почему-то не показывал всего, что было в файле. Попробовал другой редактор и всё отобразилось.
gunsoy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автозапуск и fopen cocacola Win Api 1 28.11.2013 23:29
Fopen. protiv Visual C++ 13 13.12.2012 06:13
непонятное поведение fopen frommars PHP 9 18.10.2012 13:07
не работает fopen() vedro-compota PHP 3 19.04.2012 15:25
fopen Китос Общие вопросы C/C++ 1 29.10.2011 02:14