Я написал сервер-клиентское приложение. Теперь я должен записать, что происходит на сервере, в файл журнала. Сервер написан на C. Я уже могу написать, что происходит с экраном, используя printf.
Так что мне просто нужно использовать fprintf вместо printf. У меня вопрос, как мне обращаться с файлом?
У меня есть Server.c
исходный файл, в котором есть основная функция
Вот основная структура моего Серверного приложения:
Server.c
//.. some code
int main(...) {
//some code
//initialize variables
//bind server
//listen server on port
while(1)
{
//accept client
int check = pthread_create(&thread, NULL, handle_client,&ctx);//create new thread
//..
}//end while
return EXIT_SUCCESS;
}//end main
handle_client
- это функция, которая обрабатывает клиентов в новом потоке.
Как мне сделать журнал сервера? У меня будет один текстовый файл, например SERVERLOG.log
, но на сервере много клиентов. Как мне обрабатывать множественный доступ к этому файлу?
Один из способов - создать файл при запуске сервера, открыть его, написать в нем, закрыть его.
Если клиент хочет записать в файл, он должен открыть файл, чтобы записать в него, а затем закрыть его.
Но по-прежнему существует проблема, когда больше клиентов хотят писать в этот файл ....