У меня есть процесс открытия файла в режиме добавления. В этом случае это файл журнала. Пример кода:
int main(int argc, char **argv) {
FILE *f;
f = fopen("log.txt", "a");
fprintf(f, "log entry line");
fclose(f);
}
Два вопроса:
- Если у меня есть несколько процессов, связанных с одним и тем же файлом, будет ли каждая строка журнала отображаться отчетливо или может быть чересстрочная развертка в качестве переключателя контекста процессов?
- Будет ли этот блок записи, если многие процессы требуют доступа к файлу, что вызывает проблемы concurrency?
Я рассматриваю возможность сделать это в своем простом воплощении или использовать zeromq для накачки записей журнала по трубам в сборщик журналов.
Я рассматривал syslog, но я действительно не хочу, чтобы какие-либо зависимости платформы от программного обеспечения.
По умолчанию платформа Linux для этого BTT.