Pesquisa
A API Win32 dos
Sistemas Operativos
Windows
Alguns aspectos
API Win32 dos sistemas operativos Windows
1. Programas em C em Win32
1.1 Início e terminação de programas
1.1.1 Início
Os sistemas operativos Windows (Windows 9x/Me/NT/2000) partilham uma API de programação comum, geralmente designada por Win32. Essa API de programação é constituída por um elevado número de serviços ou funções, definidos utilizando a linguagem de programação C. Iremos ver, no que se segue, alguns aspectos dessa API, mas apenas para o chamado modo consola, em que a interface com o utilizador se realiza através de uma janela de texto (consola). O outro modo de funcionamento de programas, usando a API Win32, é o modo GUI (Graphical User Interface), que compreende mais algumas centenas de serviços.
Quando se solicita ao S.O. a execução de um novo programa (serviço CreateProcess() em
Win32), este começa por executar uma rotina (no caso de programas em C) designada por C startup. Esta rotina é a responsável por chamar a função main() do programa, passando-lhe alguns parâmetros, se for caso disso, e por abrir e disponibilizar três “ficheiros” ao programa: os chamados standard input, standard output e standard error. O standard input fica normalmente associado ao teclado (excepto no caso de redireccionamento), enquanto que o standard output e o standard error ficam normalmente associados ao écran/consola (também podem ser redireccionados).
A função main() pode ser definida num programa em C de muitas formas: int int int int
ou void ou void ou void ou void
main(void) main(int argc) main(int argc, char *argv[]) main(int argc, char *argv[], char *envp[])
Assim pode ser definida como procedimento (void) ou como função retornando um inteiro
(int). Neste último caso o inteiro retornado é passado a quem chamou a função, ou seja à rotina de C startup, que por sua vez o transmite ao Sistema Operativo.
Quando se invoca um programa