- Помогите разобратся с С, phpcoder, 15:28 , 30-Янв-09 (1)
>в чем может быть проблемма?Советую начать с проверки значения, которое возвращает fopen()
- Помогите разобратся с С, Slava_D, 15:42 , 30-Янв-09 (2)
>Советую начать с проверки значения, которое возвращает fopen() Оно создаёт файл, но в него ничего не пишет, попробывал под виндой скомпилировать, после первого запуска писала в файл, потом фигу...
- Помогите разобратся с С, phpcoder, 15:49 , 30-Янв-09 (3)
>>Советую начать с проверки значения, которое возвращает fopen() > >Оно создаёт файл, но в него ничего не пишет, попробывал под виндой >скомпилировать, после первого запуска писала в файл, потом фигу... Только что скомпилировал и запустил под Линуксом. Всё работает.
- Помогите разобратся с С, Slava_D, 15:57 , 30-Янв-09 (4)
>>>Советую начать с проверки значения, которое возвращает fopen() >> >>Оно создаёт файл, но в него ничего не пишет, попробывал под виндой >>скомпилировать, после первого запуска писала в файл, потом фигу... > >Только что скомпилировал и запустил под Линуксом. Всё работает. А у меня не хочет под фрёй, создаёт файл и не пишет ничего туда. if (fp==NULL) { printf("Error"); return 0; } все проходит нормально!
- Помогите разобратся с С, Slava_D, 16:07 , 30-Янв-09 (5)
причем если написать так, то работает#include <stdio.h> int main (int argc, char* argv[]) { FILE *file; file = fopen("text.txt","a"); fputs("test", file); fputs("\n", file); fclose(file); return 0; }
- Помогите разобратся с С, Slava_D, 16:11 , 30-Янв-09 (6)
>Только что скомпилировал и запустил под Линуксом. Всё работает.Попробуй phpcoder запусти её несколько раз, будет ли работать, мож она не делает fclose(fp), и эти записи в буфере хронятся, т.к. while (fgets (line, sizeof (line), stdin)) - это как я понимаю бесконечный цикл, и выход из него Ctrl-C, и файл не закрывается - может такое быть???
- Помогите разобратся с С, phpcoder, 16:16 , 30-Янв-09 (7)
>>Только что скомпилировал и запустил под Линуксом. Всё работает. > >Попробуй phpcoder запусти её несколько раз, будет ли работать, мож она не >делает fclose(fp), и эти записи в буфере хронятся, т.к. while (fgets >(line, sizeof (line), stdin)) - это как я понимаю бесконечный цикл, >и выход из него Ctrl-C, и файл не закрывается - может >такое быть??? fgets() ждет конца файла (EOF), так что выходить надо по Ctrl+D А по Ctrl+C ты просто программу вырубал, вот и не работало ничего.
- Помогите разобратся с С, Slava_D, 16:26 , 30-Янв-09 (8)
>[оверквотинг удален] >>Попробуй phpcoder запусти её несколько раз, будет ли работать, мож она не >>делает fclose(fp), и эти записи в буфере хронятся, т.к. while (fgets >>(line, sizeof (line), stdin)) - это как я понимаю бесконечный цикл, >>и выход из него Ctrl-C, и файл не закрывается - может >>такое быть??? > >fgets() ждет конца файла (EOF), так что выходить надо по Ctrl+D > >А по Ctrl+C ты просто программу вырубал, вот и не работало ничего. >Спасибо, заработало, но появилась еще одна проблема, прогу пытаюсь написать для сквидЫ, что-то типо внешних аксеслистов, она не умеет выходить по Ctrl+D, чё делать?, каждый раз его закрывать и открывать?
- Помогите разобратся с С, phpcoder, 16:31 , 30-Янв-09 (9)
>Спасибо, заработало, но появилась еще одна проблема, прогу пытаюсь написать для сквидЫ, >что-то типо внешних аксеслистов, она не умеет выходить по Ctrl+D, чё >делать?, каждый раз его закрывать и открывать? Кто она? Ctrl+D это ты нажимаешь, чтобы обозначить конец файла, а если тебе на вход подадут файл через пайп, то там будет EOF и никакого Ctrl+D нажимать не придётся. Вообщем, неясно кто запускает твою программу и каким образом.
- Помогите разобратся с С, Slava_D, 16:38 , 30-Янв-09 (11)
>>Спасибо, заработало, но появилась еще одна проблема, прогу пытаюсь написать для сквидЫ, >>что-то типо внешних аксеслистов, она не умеет выходить по Ctrl+D, чё >>делать?, каждый раз его закрывать и открывать? > >Кто она? Ctrl+D это ты нажимаешь, чтобы обозначить конец файла, а если >тебе на вход подадут файл через пайп, то там будет EOF >и никакого Ctrl+D нажимать не придётся. > >Вообщем, неясно кто запускает твою программу и каким образом. Запускает её squid, примерно такой строкой external_acl_type my_prog children=1 %LOGIN %SRC /usr/squid/my_prog %u %s squid передаёт вроде логин и айпи адрес, и ему надо ответить или OK или ERR, что бы выяснить что он передаёт проге и в каком виде, я хочу записать в файл и посмотреть что там реально есть, и отвечаю ему OK в любом случае....
- Помогите разобратся с С, phpcoder, 16:41 , 30-Янв-09 (12)
>external_acl_type my_prog children=1 %LOGIN %SRC /usr/squid/my_prog %u %s Судя по записи, squid вам передаёт данные не через stdin, а через параметры коммандной строки. Зачем вы тогда из stdin-то читаете? ;)
- Помогите разобратся с С, Slava_D, 16:45 , 30-Янв-09 (13)
>>external_acl_type my_prog children=1 %LOGIN %SRC /usr/squid/my_prog %u %s > >Судя по записи, squid вам передаёт данные не через stdin, а через >параметры коммандной строки. Зачем вы тогда из stdin-то читаете? ;)параметры командной строки не нужны это было сделано для другого, а про stdin я посмотрел в исходниках к squid, на пример ip_user_check.c, тама все через stdin....
- Помогите разобратся с С, angra, 17:55 , 30-Янв-09 (14)
>что бы выяснить что он передаёт проге и в каком виде, я >хочу записать в файл и посмотреть что там реально есть, и >отвечаю ему OK в любом случае.... Зачем тогда С? Неужели вы не знаете ни одного скриптового языка общего назначения?
- Помогите разобратся с С, Slava_D, 18:58 , 30-Янв-09 (15)
>>что бы выяснить что он передаёт проге и в каком виде, я >>хочу записать в файл и посмотреть что там реально есть, и >>отвечаю ему OK в любом случае.... > >Зачем тогда С? Неужели вы не знаете ни одного скриптового языка общего >назначения?Ща написано на перле, до этого было что-то на bash, но на прокси много пользователей, плюс хочу еще некоторую обработку делать, по мимо запросов sql, работа с файлами и т.д, хочу попробывать осилить на С, мне кажется будет быстрей (моё личное мнение, хочу пропрбывать)
- Помогите разобратся с С, angra, 02:37 , 31-Янв-09 (16)
Вы не поняли. конечный плагин можно и на С делать ради скорости. Но вот для быстрой проверки, что именно передает squid perl/python/etc намного удобней и быстрее.
- Помогите разобратся с С, vic, 16:35 , 30-Янв-09 (10)
>Спасибо, заработало, но появилась еще одна проблема, прогу пытаюсь написать для сквидЫ, >что-то типо внешних аксеслистов, она не умеет выходить по Ctrl+D, чё >делать?, каждый раз его закрывать и открывать? ну так случиться EOF как и в этом случае: echo -e "1234\n2345" | proga если хотите чтобы каждая строка записывалась без буферизации, то либо ее отключите setbuf(), либо вызывайте fflush() после каждой записи.
|