Как делает scanf (), работают в ОС?

Одно использование внутреннего ключевого слова должно ограничить доступ к конкретным реализациям от пользователя Вашего блока.

, Если у Вас есть фабрика или некоторое другое центральное расположение для построения объектов, пользователю Вашего блока нужно только соглашение с открытым интерфейсом или абстрактным базовым классом.

кроме того, внутренние конструкторы позволяют Вам управлять, где и когда в других отношениях общедоступный класс инстанцируют.

8
задан jetru 10 August 2009 в 04:42
поделиться

3 ответа

scanf () и printf () - это функции в libc (стандартная библиотека C), и они вызывают системные вызовы операционной системы read () и write () соответственно, обращаясь к файловым дескрипторам stdin и stdout соответственно (fscanf и fprintf позволяют указать файловый поток, из которого вы хотите читать / записывать).

Вызовы read () и write () (и все системные вызовы) приводят к «переключению контекста» из вашего приложение на уровне пользователя в режим ядра, что означает, что оно может выполнять привилегированные операции, такие как прямой обмен данными с оборудованием. В зависимости от того, как вы запустили приложение, дескрипторы файлов 'stdin' и 'stdout', вероятно, привязаны к консольному устройству (например, tty0) или какому-либо устройству виртуальной консоли (например, предоставляемому xterm). read () и write () безопасно копируют данные в / из буфера ядра, называемого '

24
ответ дан 5 December 2019 в 06:38
поделиться

Я думаю, что ОС просто предоставляет два потока, один для ввода, а другой для вывода, потоки абстрагируются от того, как представляются выходные данные или откуда поступают входные данные.

поэтому scanf и printf просто добавляют байты (или потребляют байты) из любого потока.

0
ответ дан 5 December 2019 в 06:38
поделиться

В моей ОС я работаю с scanf, а printf основан на функциях getch () и ant putch ().

1
ответ дан 5 December 2019 в 06:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: