Как POSIX, так и C11 требуют, чтобы потоки имели связанную блокировку, чтобы предотвратить скачки и чередование данных.Документы POSIX flockfile()
и связанные с ними функции позволяют поточно-ориентированному вводу-выводу охватывать несколько вызовов.Есть ли эквивалентная функция C?Я не помню ни одного и не смог найти упомянутое, что не обязательно означает, что никого не существует.
На связанном примечании безопасно ли предполагать, что любая реализация заявляет о соответствии POSIXбудет уважать flockfile()
при использовании C11 threads.h?Я думаю, что большинство основных реализаций C, совместимых с POSIX, которые поддерживают threads.h, делают это, опираясь на pthreads, что предполагает такое предположение, как правило, безопасно.Однако многопоточность сложна, и было бы полезно узнать об исключениях.