Си. Функция exit не закрывает стандартные потоки?

Вот часть вывода ltrace для утилиты (cut).

ltrace -fw10 cut -f1 <(echo)

[pid 3610] fclose() = 0
    rpl_fclose (ip)
    close_stream (ip)
    
    close_stdout (ip)
    
    __run_exit_handlers (ip)
    exit (ip)
    __libc_start_call_main (ip)
    __libc_start_main (ip)
    _start (ip)
[pid 3610] +++ exited (status 0) +++

В данном случае потоки закрывает функция close_stdout. Которая была зарегистрирована с помощью atexit в теле функции main утилиты cut. Вопрос: Означает ли это что функция exit стандартной библиотеки не закрывает потоки? Если закрывает тогда просьба показать фрагмент кода, где это происходит. Если не закрывает тогда почему в документации man 3 exit указано обратное? Трассировка простейшей тестовой программы показывает что закрытие потоков вообще не происходит.


Ответы (0 шт):