Вызов записи не является асинхронным, то есть системный вызов должен возвращаться из ядра.
Конечно, этот системный вызов, в основном, помещает данные в очередь ввода / вывода, которая позже осуществит реальную передачу. Тем не менее, я думаю, что эта очередь ввода / вывода может быть недоступна в течение некоторого времени.
Это не зависит от носителя, на который вы пишете, если это блочное устройство. У меня есть программа записи потоков изображений JPEG на SD-карту. Эта программа зависнет из-за операций на жестком диске.
Однако, если это проблема с блокировкой вызова записи в течение десяти секунд, вы можете попытаться ограничить вашу программу. Я не знаю, как или если это нарушит поведение, которое вы пытаетесь наблюдать
strace -T -e trace=write progname
Если вы хотите отслеживать активность журнала, возможно, вы можете перенаправить запись журнала в канал или именованный канал, поместить процесс, который по сути читает из этого канала и записывает в ваш файл журнала, и связать его. *