|
|
|
| Когда мы используем функции ввода-вывода, например file_put_contents (); для открытия файла, нужно сообщить имя этого файла. Например "C:\dump.txt". А как узнать имя для вывода, скажем на звуковую плату или в принтер? Как устройства задают эти имена? | |
|
|
|
|
|
|
|
для: dump
(22.11.2011 в 13:05)
| | В UNIX-подобных операционных системах все просто, в них имеется виртуальная файловая система. Поэтому теоретически, при наличие соответствующих прав доступа, вы можете обращаться к файл-устройствам. Хоть пишите, хоть читайте, если знакомы с протоколом устройства. В Windows вот так запросто не получится - тут интерфейсы не файловые. Чтобы такой файловый интерфейс эмулировать на Windows - придется здорово попотеть и то не факт, что добьетесь успеха. В любом случае потребуется создание собственного драйвера... обычно легче воспользоваться готовым драйвером, который писали люди, во-первых понимающие как их писать, во-вторых знающие как устроена железка для которой драйвер писан. Да и довольно жестко в Windows с этим делом - он вам не даст напрямую манипулировать железом, только через свои подсистемы. Именно поэтому и возник DirectX - невозможно было через медленный и неповоротливый механизм Windows быстро пробиться к железу и выжать из него все, на что оно способно. Поэтому DirectX - позволяет обращаться к звуку, видеопамяти, устройствам ввода напрямую... вернее не совсем на прямую, а через DirectX. Вот так вот, чтобы напрямую с звуковой картой общаться (а может и сжечь её в результате общения) - это нужно от операционной системы отказываться, по крайней мере от Windows, и либо свою писать, либо использовать Linux. | |
|
|
|
|
|
|
|
для: cheops
(22.11.2011 в 13:22)
| | А как же CON, PRN и прочие? Или уже не работают? | |
|
|
|
|
|
|
|
для: Киналь
(22.11.2011 в 19:45)
| | >А как же CON, PRN и прочие? Или уже не работают?
Первый вопрос где (работают или не работают)? Второй вопрос, что это ли хотя бы приблизительно из какой области? :)
PS До загрузки операционной системы и вирусы в пол килобайта работают... просто не всем такие спартанские условия подходят и не всем интересно на голом биосе. | |
|
|
|
|
|
|
|
для: cheops
(22.11.2011 в 20:43)
| | Э-э... Ну, я вроде читал, что это имена файлов, при обращении к которым в Windows происходит обращение к принтеру, COM-портам и прочему подобному. Ну там, fwrite("Hello world", "PRN") напечатает строчку, соответственно, "Hello world". | |
|
|
|
|
|
|
|
для: Киналь
(23.11.2011 в 22:53)
| | Фактически информация все-равно пойдет сначала микро-драйверу (или как они там сейчас называются), потом драйверу, а потом самому устройству. Т.е. ни сжечь, ни поломать устройство не удастся. Да, многие интерфейсы файловые или хотят ими выглядеть (в том числе и под Windows), но не все. Кроме того, в Windows теряется наглядность, т.е. вроде как к файлу обращаешься, но самого по себе такого файла в файлововой систем, как в Linux, нет. Что же это за файл такой, если он не существует? Да, конечно, и в Linux они не физические, но можно пойти файловым менеджером и проверить, есть в системе принтер или нет... а ведь это очень удобно, вы можете использовать файловые функции (любого языка программирования) для проверки существования тех или иных устройств (как и для назначения прав доступа к ним), в Windows же для этого 1001 функций и механизмов. | |
|
|
|