anonymous
написал 6 августа 2005 года в 21:42 (3024 просмотра)
Ведет себя
неопределенно; открыл 1814 темы в форуме, оставил 5575 комментариев на сайте.
Как реализовать такую фичу :
в своей программе на си в разных ее местах я вставляю строку :
debug(«очередное сообщение», «mydebug.txt»);
и каждый раз , когда программа натыкается на эту строку , она добавляет
в конец файла mydebug.txt очередное сообщение
Последние комментарии
-
fhunter, 29 ноября в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
-
DimitriuS, 6 сентября в 10:37 → Перекличка 14
-
Иванн, 9 апреля в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
-
Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
-
fhunter, 26 февраля 2021 года в 20:45 → A, MX, PTR — Настройка и проверка извне. Как ? 2

Экология и вегетарианство на благо всем живым существам Планеты.
Дык, сделай функцию, назови debug. Открывай в ней файл на append и пиши, что надо. Не понял вопроса…
Good Luck,
UT
могу поделиться классом с таким функционалом
Да я вроде уже накропал :
void debug(char *str,int cislo,char * type_open)
{
FILE * debugfile=fopen(«debug.!»,type_open);
fprintf(debugfile,"%s %d\n»,str,cislo);
fclose(debugfile);
}
debug(«create» ,0,«w»);
debug(«add» ,0,«a»);
Я рекомендовал бы не открывать и закрывать файл постоянно, это все системные вызовы и может сильно замедлять работу, лучше сделать примерно так:
void debug(char *str,int cislo,char * type_open)
{
static FILE * debugfile=NULL;
if( debugfile==NULL)
{
debugfile=fopen(«debug.!»,type_open);
}
fprintf(debugfile,"%s %d\n»,str,cislo);
}
и вообще лучще не вызывать на прямую эту функцию, а делать это через макрос:
#define LOG_DEBUG(a,b,c) debug(a,b,c)
тогда отладку можно очень легко отключить
Чего мучаться?
Пиши в stderr, и перенаправляй вывод в консольке (2>>debug.file).
после fprintf, стоит добавить fflush (debugfile), а то что-нибудь может и потеряться в недрах libc.
http://www.nixp.ru/cgi-bin/forum/YaBB.pl?board=trash;action=display;num=1124455527