Olá, seja bem-vindo de volta.
Nesta palestra, quero falar sobre algumas das funções de utilitário
fornecidas pela biblioteca padrão c.
E estes fazem exatamente o que você pensaria que apenas
alguns utilitários, algumas funções gerais genéricas para fazer várias coisas diferentes.
Para usar as funções utilitárias, eles geralmente estão na biblioteca padrão. h.
Então você inclui esse arquivo de cabeçalho.
Algumas das funções que vou para descrever apenas funções úteis.
Um é o valor absoluto abs.
Retorna o absoluto valor de um argumento.
O valor absoluto é convertendo-o em positivo.
Então, se você passar em uma negativa ou assim por diante, ele
retornará o valor positivo.
Existe uma função chamada exit.
Eu usei isso um pouco em nossa função principal.
Levará um número inteiro, geralmente um valor de retorno e geralmente um
número negativo significa que há um erro um número positivo ou zero significa nenhum erro
ou um significa nenhum erro.
Isso vai terminar o programa embora.
Ele simplesmente vai saltar para fora.
Se você está em uma função principal, você faz um retorno, você
pode retornar da função principal.
Mas a saída geralmente é para fechar o programa.
Existem algumas constantes também definido como sucesso de saída e falha
de saída que você pode usar se você não quer usar números.
Outras rotinas relacionadas no biblioteca que você pode
querer consultar são importantes na saída.
E você verá isso em um programa bit c, especialmente abortar.
Abortar é quando há algum tipo de erro, como se você não pode
malloc, pode chamar abort, e você pode configurá-lo para sinalizar.
A coisa boa com abortar é que irá gerar
um arquivo principal dependendo do sinal.
O arquivo principal pode ser ajudado a debug para mais informações.
Mas saia abortar e sair muito funções úteis, geralmente invocadas quando você tem
um erro fatal.
Existe um ambiente get função que permitirá que você leia as
variáveis de ambiente.
Variáveis de ambiente são geralmente associado ao seu ambiente.
Eles são uma variável que você
pode usar é como uma variável global que você pode usar em qualquer lugar do sistema operacional.
Então, se for Linux, você tem um variável de ambiente para seu caminho.
Existem variáveis de ambiente em janelas para especificar caminhos ou onde diferentes
programas estão localizados ou apenas variáveis globais genéricas.
Você pode definir uma variável de ambiente e então você pode lê-lo
usando esta função get environment.
E vai ler nisso variável de ambiente e você pode usá-la
em seu programa.
Então, novamente, coisas como caminho, qualquer coisa que estão relacionados com o seu shell
ou relacionados com o seu ambiente.
Obter ambiente é muito útil.
Existe uma função qsort.
Isso classificará a matriz de dados apontado pela matriz de ponteiro void.
Portanto, há uma matriz que é tomado como um primeiro parâmetro
e vai classificá-lo.
Haverá n elementos no matriz, cada tamanho morde no comprimento.
E on e o tamanho são do tipo tamanho t.
Portanto, existem quatro variáveis que vão para esta função.
Mas o qsort é bom porque você pode classificar uma matriz.
O quarto argumento é um ponteiro para a função que você
deseja usar para classificação.
Portanto, pode se tornar mais complicado.
Mas essa função é muito útil quando você precisa comparar dois
elementos em uma matriz.
Você pode passar as dicas aos elementos com os
quais você deseja comparar.
Temos uma função aleatória.
Usamos isso em um dos nossos desafios rand.
Isso irá gerar um número aleatório.
Você pode especificar uma semente se quiser em outra função
ou irá apenas gerar um número aleatório entre um valor mínimo de 3276 e valor
mínimo zero aleatório, valor máximo de 3276.
Portanto, rand max é definido na biblioteca padrão. h.
Você costuma usar isso com o sran função, que fornece uma semente.
Uma semente pode fornecer um certo intervalo.
Isso fará com que os números talvez mais aleatório também.
Então semeia o número aleatório gerador para um int não assinado.
Sistema é uma função que você pode invoke para executar chamadas de sistema.
Usei na aula para fazer uma pausa.
Mas qualquer coisa que você pode executar a partir do console, como
alterar diretórios, alterar permissões se você estiver Linux, executando outros programas, você pode fazer
tudo isso através do sistema.
E então isso vai realmente execute um comando em seu shell, seja o
prompt do DOS ou você está usando um shell no Linux.
Ele executará esse comando.
Então, por exemplo, você poderia dizer system make dir e irá criar um diretório de
tudo o que você especificou no argumento para fazer dir.
Está tudo dentro do dobro aspas, por isso leva uma string.
O sistema também é muito, muito útil.
A biblioteca assert é útil para depuração.
Não tivemos a chance de conversar muito sobre afirmar, mas
eu queria mencioná-lo brevemente.
É uma biblioteca que está em vigor. h e é um para ajudar na depuração.
Portanto, afirmar é dizer que algo é verdade.
Então você pode colocar a afirmação dentro seu código para se certificar de que algo é
verdadeiro antes de você avance para a próxima linha de código.
Há uma macro de declaração que você vai usar e leva um
argumento como uma expressão interna.
Se a expressão for avaliada como false, a macro assert grava uma mensagem
de erro no erro padrão stream e chama a função abort.
Portanto, seu programador será encerrado.
Então você pode colocar algo em seu código que
basicamente diz algo assim.
Você pode dizer que z é igual a x vezes x menos x vezes y.
E então você pode afirmar que z é maior ou igual a zero.
Se retornar falso, seu o programa vai sair.
Caso contrário, ele será executado a próxima linha de código.
Então é como tornar verdade suposições em todo o código.
Você quer ter certeza de que certos valores são o que são antes
de você passar para o próximo.
Basicamente, trata-se de garantir que você não gosta de dividir por zero aí você
não tinha um valor zero quando você fez esta multiplicação.
Você frequentemente verá afirmação dentro de programas c para depuração.
Outros arquivos de cabeçalho úteis que você pode querer olhar para: tempo. h.
Tempo. h tem todos os tipos de diferentes funções e macros para
suportar datas e horas diferentes.
Normalmente, retornando uma estrutura de tempo t.
Mas você pode conseguir a data.
Você pode obter o tempo.
Errno. h ou errornumber. h.
Isso define macros para relato de erros.
Freqüentemente usado, novamente, para melhor depuração e relatório de
erros específicos.
Então, muitas funções você usar em bibliotecas padrão.
Se eles falharem, eles podem retornar um número para um erro específico, e é mais importante quando você
usa algum soquete funciona outras coisas porque pode
haver muitos erros diferentes.
Às vezes é útil saber o que
está acontecendo em vez de apenas dizer que há um erro não é muito útil dizer
que um tipo específico de erro é muito útil.
Então você pode obter números de erro usando isso com para ajudar
na depuração adicional.
Localidade. h.
Há um monte de funções e
macros neste cabeçalho para formatar diferentes moedas e unidades monetárias.
Sinal. h.
Isso é útil para geralmente para o término do programa, gerando
sinais diferentes.
Sinais não é um tópico que cobrimos com muitos detalhes,
mas isso pode ser útil quando você chama abort especificando sinais específicos enquanto o programa
travava ou era encerrado.
E você pode usar isso se você entenda os sinais de que você também pode
usá-los em seu arquivo principal.
Stdarg. h.
Isso define diferentes instalações que permite que um número variável de
argumentos seja passado para uma função, varargs.
Usamos vargs e printf, mas não criar nossas próprias funções de arg.
É um tópico mais avançado.
Mas esses são arquivos de cabeçalho básicos que você pode achar útil para obter tempos, números
de erros e assim por diante.
Estas são boas funções de utilidade.
Espero que tenha sido útil.
Obrigada.