paulo1205
(usa Ubuntu)
Enviado em 27/08/2015 - 15:28h
ubuntu_server escreveu:
Então paulo1205 por favor qual a forma certa de estudar C não usando diretamente o S.O., tipo assim quando vi na Wikipedia sobre as bibliotecas C padrão, mostra uma certa quantidade de bibliotecas, mas quando olhei as libs do GCC por exemplo são só algumas iguais e muitas outras diferentes e a mesma coisa no Windows e ai por diante, não tem um conjunto de bibliotecas C que sejam única, tipo assim que sejam multi-plataformas por mais que sejam menas libs mas que sejam funcionais ? Obrigado Novamente e DEUS Abençoe...
E nesse código acima não falta nada de lib, está completo ?
Começando pelo fim. Eu não posso garantir que o código vai funcionar do jeito como está. Eu acho que ele está bem próximo do código correto, que seria usado com o MS-DOS, mas pode haver detalhes de notação que difiram na hora de converter o ponteiro (por exemplo: em vez de escrever o endereço absoluto 0xb8000, escrever na forma de 16 bites de segmento e 16 bits de deslocamento, i.e. 0xb8000000). O tipo
uint8_t é especificado no padrão como um inteiro sem sinal de oito bits, e esse “apelido” está em <stdint.h>. No PC, ele é equivalente a
unsigned char.
O que costuma chamar de C padrão tem pelo menos duas partes, que são a definição da linguagem em si, que compreende apenas os tipos de dados e as operações que a linguagem é capaz de fazer esses dados, e uma segunda parte que define uma biblioteca de tipos de dados secundários, constantes e funções que podem ser invocadas a partir de um programa em C.
Essa biblioteca tem mais de um escopo possível: um é o de um ambiente autônomo (
freestanding), em que o programa em C pode executar sem o suporte de nenhum sistema operacional (caso em que se tem um cenário próximo do “computador puro”). Nesse ambiente, só requerido o funcionamento de um subconjunto da biblioteca padrão. O outro possível ambiente é aquele em que o programa em C executa sobre um sistema operacional (hospedado, ou
hosted) que oferece recursos como armazenamento com persistência (arquivos), gestão de memória e outras operações que são muito à quase totalidade dos sistemas operacionais.
Eu acho pouco provável que você queira mexer com sistemas
freestanding por enquanto. Acho que você vai querer um sistema operacional nem que seja para compilar os programas que vai testar. Então, você pode usar todos os recursos da biblioteca padrão, que são obrigatórios a todas as implementações do C. Um programa que use somente a biblioteca padrão deve executar de modo idêntico em qualquer implementação, e apresentar resultados consistentes.