
Claro, podemos fazer isso: podemos invocar a função libc :: ioctl diretamente, que tem este protótipo:
Tudo bem então: precisamos de um descritor de arquivo como o primeiro argumento, que temos.
Em sistemas do tipo Unix, “tudo é um arquivo e um arquivo é definido como um fluxo de bytes que você pode abrir, ler, escrever para e, finalmente, fechar”… certo?Aqui, olhe:
Começamos declarando nossa própria versão do WSDISPLAY_GINFO, que eu chamei do My_Ginfo, que inclui apenas os poucos campos que queremos propagar para enferrujar.Espacando em /usr/include/dev/wscons/wsconsio.h Como a página manual nos direciona, encontramos:
Ok, ótimo, a estrutura wsDisplay_fbinfo se alinha perfeitamente com o conteúdo da página manual.O IOCTL é, portanto, “apenas” uma sacola de funcionalidade arbitrária e o que pode ser chamado em um determinado descritor de arquivo depende do que o descritor de arquivo representa.