<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://br-c.org/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://br-c.org/feed.php">
        <title>Programação em C/C++ (Voltando a atualizar)</title>
        <description></description>
        <link>https://br-c.org/</link>
        <image rdf:resource="https://br-c.org/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-04-12T04:26:46+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=accept&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=alocacao_memoria&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=arquivos_funcoes_de_nivel_2&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=atexit&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=bind&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=break&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=case_sensitive&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=close&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=comandos_repeticao&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=comandos_selecao&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=comentarios&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=connect&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=const&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=continue&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=creat&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=daemon&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=definicao_funcao&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=dowhile&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=editor_vi&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=entrada_saida&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=errno&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=estrutura_programa&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=exemplo_eco&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=exemplo_tftp&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=exercicios_resolvidos&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=exit&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=extern&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=for&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=fork&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=gcc_linux&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=getchar&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=gethostbyname&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=getpeername&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=goto&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=htonl&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=if&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=inet_aton&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=isupper&amp;rev=1694560484&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=listen&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=lseek&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=main&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=malloc&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=open&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=operador_ternario&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=operadores&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=padronizacao&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=palavras_reservadas&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=perror&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=ponteiros&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=pre_compilacao&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=printf&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=processos&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=programas_uteis&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=putchar&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=read&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=recv&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=rede&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=remove&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=rename&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=return&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=scanf&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=send&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=shutdown&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=sinal&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=sizeof&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=sleep&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=snprintf&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=sockaddr_in&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=socket&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=sprintf&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=sscanf&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=start&amp;rev=1694560640&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=static&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=strcat&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=strcmp&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=strcpy&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=strerror&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=strings&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=strlen&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=strncat&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=strncmp&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=strncpy&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=strstr&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=strtok&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=switch&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=threads_posix&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=tipos_dados&amp;rev=1694560485&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=typedef&amp;rev=1694560486&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=unlink&amp;rev=1694560486&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=variavel_definicao&amp;rev=1694560486&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=vetor_matriz&amp;rev=1694560486&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=wait&amp;rev=1694560486&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=waitpid&amp;rev=1694560486&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=while&amp;rev=1694560486&amp;do=diff"/>
                <rdf:li rdf:resource="https://br-c.org/doku.php?id=write&amp;rev=1694560486&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://br-c.org/lib/tpl/dokuwiki/images/favicon.ico">
        <title>Programação em C/C++ (Voltando a atualizar)</title>
        <link>https://br-c.org/</link>
        <url>https://br-c.org/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="https://br-c.org/doku.php?id=accept&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>accept</title>
        <link>https://br-c.org/doku.php?id=accept&amp;rev=1694560484&amp;do=diff</link>
        <description>Função accept

Sintaxe:

int accept(int socket, struct sockaddr *addr, socklen_t *addrlen);

----------

Após ter utilizado a função listen para habilitar as conexões, é necessário aceitar a conexões. A função accept aceita as conexões efetuadas pelos clientes. Deve ser passado para a função o</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=alocacao_memoria&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>alocacao_memoria</title>
        <link>https://br-c.org/doku.php?id=alocacao_memoria&amp;rev=1694560484&amp;do=diff</link>
        <description>Alocação de Memória

Funções

	*  malloc
	*  free
	*  calloc
	*  realloc
	*  memset
	*  memcpy
	*  memcmp
	*  memmove</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=arquivos_funcoes_de_nivel_2&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>arquivos_funcoes_de_nivel_2</title>
        <link>https://br-c.org/doku.php?id=arquivos_funcoes_de_nivel_2&amp;rev=1694560484&amp;do=diff</link>
        <description>O Sistema de Arquivos

Como a linguagem C foi originalmente desenvolvida sobre o sistema operacional Unix, ela inclui um segundo sistema de E/S com arquivos em disco que reflete basicamente as rotinas de arquivo em disco de baixo nível do Unix. O sistema de arquivo tipo Unix usa funções que são separadas das funções do sistema de arquivo com buffer.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=atexit&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>atexit</title>
        <link>https://br-c.org/doku.php?id=atexit&amp;rev=1694560484&amp;do=diff</link>
        <description>Função atexit

Sintaxe:

int atexit(void (*func)(void))

Arquivo Header: stdlib.h

----------

Conforme definido no ANSI C, pode-se registrar até 32 funções que serão automaticamente executadas quando um processo termina. Estas funções são chamadas de exit handlers</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=bind&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>bind</title>
        <link>https://br-c.org/doku.php?id=bind&amp;rev=1694560484&amp;do=diff</link>
        <description>Função bind

Sintaxe:

int bind(int sockfd, const struct sockaddr *my_addr, socklen_t addrlen );

----------

A função bind associa o socket criado a porta local do sistema operacional. Nesta associação é verificado se a porta já não está sendo utilizada por algum outro processo. Será através desta associação (porta) que o programa irá receber dados (</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=break&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>break</title>
        <link>https://br-c.org/doku.php?id=break&amp;rev=1694560484&amp;do=diff</link>
        <description>Comando break

Sintaxe:


while (condição)
{
   bloco de comandos;
   if( condição )
   {
      break;
   }
}


OU


for (condição)
{
   bloco de comandos;
   if( condição )
   {
      break;
   }
}


OU


do
{
   bloco de comandos;
   if( condição )
   {
      break;
   }
}
while(condição)</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=case_sensitive&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>case_sensitive</title>
        <link>https://br-c.org/doku.php?id=case_sensitive&amp;rev=1694560484&amp;do=diff</link>
        <description>O C é &quot;Case Sensitive&quot;

Um ponto importante da linguagem C e que deve ser ressaltado: o C é Case Sensitive, isto é, maiúsculas e minúsculas fazem diferença. Se declarar uma variável com o nome soma ela será diferente de Soma, SOMA, SoMa ou sOmA</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=close&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>close</title>
        <link>https://br-c.org/doku.php?id=close&amp;rev=1694560484&amp;do=diff</link>
        <description>Função close

Sintaxe:

int close (int iFileDescriptor);

----------

Quando se fecha um arquivo, todas as operações de saída pendentes em memória são gravadas no disco e as estruturas de controle interno são liberadas pelo sistema operacional.

Quando um processo termina normalmente com a chamada à função</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=comandos_repeticao&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>comandos_repeticao</title>
        <link>https://br-c.org/doku.php?id=comandos_repeticao&amp;rev=1694560484&amp;do=diff</link>
        <description>Comandos de Repetição ou Comandos de loop

	*  Comando for
	*  Comando while
	*  Comando do..while
	*  Comando break
	*  Comando continue
	*  Comando goto
	*  Comando exit</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=comandos_selecao&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>comandos_selecao</title>
        <link>https://br-c.org/doku.php?id=comandos_selecao&amp;rev=1694560484&amp;do=diff</link>
        <description>Comandos de Seleção ou Condição

	*  Comando if
	*  Comando if..else
	*  Operador ?:
	*  Comando switch..case

 --- Marcos Laureano 2008/05/03 20:22</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=comentarios&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>comentarios</title>
        <link>https://br-c.org/doku.php?id=comentarios&amp;rev=1694560484&amp;do=diff</link>
        <description>Comentários

Os comentários de um programa devem ser colocados entre /* e */. O compilador ANSI C aceita os comentários entre /* e */. Quaisquer textos colocados entre estes dois símbolos serão ignorados pelo compilador.

Deve-se colocar um comentário no início de cada função do programa explicando a função, seu funcionamento, seus parâmetros de entrada e quais são os possíveis retornos que esta função pode devolver.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=connect&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>connect</title>
        <link>https://br-c.org/doku.php?id=connect&amp;rev=1694560484&amp;do=diff</link>
        <description>Função connect

Sintaxe:

int connect(int sockfd, const struct sockaddr * serv_addr, socklen_t addrlen);

----------

A função connect inicia uma conexão socket do lado do cliente, não é necessário associar uma parte no cliente. Na estrutura passada é informada as informações relacionadas ao servidor (destino). A função retorna 0 (zero) se a conexão foi bem sucedida ou –1 se houve erro.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=const&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>const</title>
        <link>https://br-c.org/doku.php?id=const&amp;rev=1694560484&amp;do=diff</link>
        <description>Definição de Constantes

Muitas vezes é desejável que além de uma variável possuir um valor pré-definido, quer-se que este valor não seja modificado por nenhuma função de um programa.

Para que isto aconteça deve-se colocar a palavra const</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=continue&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>continue</title>
        <link>https://br-c.org/doku.php?id=continue&amp;rev=1694560484&amp;do=diff</link>
        <description>Comando continue

Sintaxe:


while(condição)
{
   bloco de comandos 01;
   if( condição )
   {
      continue;
   }
   bloco de comandos 02;
}


OU


for(condição)
{
   bloco de comandos 01;
   if( condição )
   {
      continue;
   }
   bloco de comandos 02;
}</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=creat&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>creat</title>
        <link>https://br-c.org/doku.php?id=creat&amp;rev=1694560484&amp;do=diff</link>
        <description>Função creat

Sintaxe:

int creat(const char * path, mode_t mode);

----------

Quando se quer abrir um arquivo e criar o mesmo caso não exista ou truncar o mesmo caso já exista pode-se usar a função creat.

O arquivo será aberto somente para gravação pois esta função é equivalente a chamada da função</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=daemon&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>daemon</title>
        <link>https://br-c.org/doku.php?id=daemon&amp;rev=1694560484&amp;do=diff</link>
        <description>Daemons (serviços)

Conceito de daemon

Em várias situações precisa-se que um processo fique em execução continuamente (eternamente) em uma máquina. A estes processos dá-se o nome de daemons ou serviços. 

Geralmente são programas que são iniciados assim que o sistema operacional é inicializado. Coloca-se a chamada dos</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=definicao_funcao&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>definicao_funcao</title>
        <link>https://br-c.org/doku.php?id=definicao_funcao&amp;rev=1694560484&amp;do=diff</link>
        <description>Definições de Funções

	*  Comando return
	*  Definição extern
	*  Definição static
	*  Função atexit

Criação de Funções

As técnicas de programação dizem que, sempre que possível, evite códigos extensos, separando o mesmo em funções, visando um fácil entendimento e uma manutenção facilitada. De acordo com a técnica, devem-se agrupar códigos correlatos em uma função.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=dowhile&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dowhile</title>
        <link>https://br-c.org/doku.php?id=dowhile&amp;rev=1694560484&amp;do=diff</link>
        <description>Comando do...while

Sintaxe:


do
{
   bloco de comandos
} 
while (condição);


----------

O comando do...while diferencia-se do comando while somente em um detalhe. O bloco de comando indicado é sempre executado pelo menos uma vez. Após a execução do bloco a condição é testada. Caso seja verdadeira, o bloco continua a ser executado.
A execução passará para o próximo comando somente quando a condição retornar falso.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=editor_vi&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>editor_vi</title>
        <link>https://br-c.org/doku.php?id=editor_vi&amp;rev=1694560484&amp;do=diff</link>
        <description>Editor vi/vim

Comandos no teclado

Retirado da página do Aurélio

[Mapa do teclado]</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=entrada_saida&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>entrada_saida</title>
        <link>https://br-c.org/doku.php?id=entrada_saida&amp;rev=1694560484&amp;do=diff</link>
        <description>Funções de Entrada/Saída

São funções que permitem realizar a leitura/escrita de informações a partir da/para entrada padrão. Para trabalhar adequadamente com estas e outras funções é necessário conhecer os formatadores de tipo de dados e algumas constantes reconhecidas pelo compilador.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=errno&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>errno</title>
        <link>https://br-c.org/doku.php?id=errno&amp;rev=1694560484&amp;do=diff</link>
        <description>Tratamento de Erros

A maioria das funções devolve somente uma indicação de que houve erro em sua execução, seja através de um valor negativo, seja através de um ponteiro nulo. 

O erro ocorrido na função é armazenado na variável errno, definida internamente no sistema e disponibilizada no programa através da colocação do arquivo errno.h na compilação do programa. Dentro deste arquivo</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=estrutura_programa&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>estrutura_programa</title>
        <link>https://br-c.org/doku.php?id=estrutura_programa&amp;rev=1694560484&amp;do=diff</link>
        <description>Estrutura de um Programa

Um programa básico em C possui os seguintes blocos:

[Estrutura de um programa]

Um programa C deve possuir uma certa estrutura para ser válido. Basicamente têm-se três blocos distintos nos programas. Inicialmente deve-se ter uma seção onde serão feitos os</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=exemplo_eco&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>exemplo_eco</title>
        <link>https://br-c.org/doku.php?id=exemplo_eco&amp;rev=1694560484&amp;do=diff</link>
        <description>Servidor de ECO

Um servidor de ECO simplesmente recebe uma mensagem e retorna a mesma mensagem (eco) sem modificações.

Cliente TCP de ECO

Este cliente recebe uma mensagem via linha de comando e envia 10 vezes (1 por segundo) para o servidor de eco.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=exemplo_tftp&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>exemplo_tftp</title>
        <link>https://br-c.org/doku.php?id=exemplo_tftp&amp;rev=1694560484&amp;do=diff</link>
        <description>Cliente e Servidor TFTP

O Trivial File Transfer Protocol (ou apenas TFTP) é um protocolo de transferência de arquivos, muito simples, semelhante ao FTP.

O TFTP é usualmente utilizado para transferir pequenos arquivos entre hosts numa rede. O TFPT trabalha com o protocolo de transporte</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=exercicios_resolvidos&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>exercicios_resolvidos</title>
        <link>https://br-c.org/doku.php?id=exercicios_resolvidos&amp;rev=1694560484&amp;do=diff</link>
        <description>Exercícios Resolvidos

Esta página irá conter exercícios de entrada e saída, estruturas condicionais, estruturas de repetição, funções e vetores e matrizes. As respostas serão colocadas em forma de algoritmo (nomenclatura do VisualAlg) e sempre com o código C correspondente.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=exit&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>exit</title>
        <link>https://br-c.org/doku.php?id=exit&amp;rev=1694560484&amp;do=diff</link>
        <description>Comando exit

Sintaxe:

void exit( int valor_de_retorno);

Arquivo header:  

stdlib.h

----------

A função exit deve ser usada quando se quer terminar a execução do programa, retornando para o sistema operacional um indicativo. Tanto em Unix/Linux como em Windows/DOS existem maneiras de se obter o número retornado.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=extern&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>extern</title>
        <link>https://br-c.org/doku.php?id=extern&amp;rev=1694560484&amp;do=diff</link>
        <description>Definição extern

Sintaxe:

extern tipo_variável nome_variável

----------

Quando o sistema é separado em vários programas, pode-se ter o problema de acesso a certas variáveis globais, pois a definição da mesma pode estar em um programa fonte e é necessário acessar estas variáveis em outro programa fonte.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=for&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>for</title>
        <link>https://br-c.org/doku.php?id=for&amp;rev=1694560484&amp;do=diff</link>
        <description>Comando for

Sintaxe:


   for(inicialização;
       condição de parada;
       incremento)
   {
      bloco de comandos
   }


----------

Quando se quer executar um bloco de comando um número determinado de vezes deve-se utilizar o comando for</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=fork&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fork</title>
        <link>https://br-c.org/doku.php?id=fork&amp;rev=1694560484&amp;do=diff</link>
        <description>Função fork

Sintaxe:

 #include &lt;unistd.h&gt;

pid_t fork(void);

----------

A função fork é uma função que duplica o processo atual dentro do sistema operacional. O processo que inicialmente chamou a função fork é chamado de processo pai. O novo processo criado pela função</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=gcc_linux&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>gcc_linux</title>
        <link>https://br-c.org/doku.php?id=gcc_linux&amp;rev=1694560484&amp;do=diff</link>
        <description>Compilando no Linux

GCC

Compilar é transformar um arquivo legível para o homem (chamado de código-fonte, source file em inglês) para um arquivo legível para a máquina (binário, binary). Quem faz esse trabalho é o compilador. 

O compilador C/C++ padrão no Linux é o</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=getchar&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>getchar</title>
        <link>https://br-c.org/doku.php?id=getchar&amp;rev=1694560484&amp;do=diff</link>
        <description>Função getchar

Sintaxe:

int getchar();

Header:

stdio.h

----------

Quando for necessário realizar a entrada de um único caractere pode ser utilizado esta função. Ela lê um caractere do terminal e devolve o código ASCII do mesmo. Sendo assim é possível assinalar o valor da função para uma variável do tipo caractere (</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=gethostbyname&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>gethostbyname</title>
        <link>https://br-c.org/doku.php?id=gethostbyname&amp;rev=1694560484&amp;do=diff</link>
        <description>Função gethostbyname

Sintaxe:

struct hostent * gethostbyname(const char * name);

----------

A função gethostbyname retorna a partir de um nome passado o endereço IP associado ao nome. A função realizar o papel de um DNS. Ela retorna um ponteiro para uma estrutura ou NULL em caso de erro.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=getpeername&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>getpeername</title>
        <link>https://br-c.org/doku.php?id=getpeername&amp;rev=1694560484&amp;do=diff</link>
        <description>Função getpeername

Sintaxe:

#include &lt;sys/socket.h&gt;

int getpeername(int iSocket, struct sockaddr * stNome, socklen_t * iTamanho_nome);

----------

A função getpeername retorna o nome de um cliente que conectou­-se ao servidor. A função retorna 0 (zero) em caso de sucesso ou –1 se houve algum erro.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=goto&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>goto</title>
        <link>https://br-c.org/doku.php?id=goto&amp;rev=1694560484&amp;do=diff</link>
        <description>Comando goto

Sintaxe:


bloco de comandos;
...
goto saida;
...
saida: comandos
...


----------

O comando goto realiza o desvio da execução para o comando que possuir o label indicado. Apesar de existir este comando, todas as boas técnicas de programação dizem que seu uso deve ser evitado.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=htonl&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>htonl</title>
        <link>https://br-c.org/doku.php?id=htonl&amp;rev=1694560484&amp;do=diff</link>
        <description>Funções htonl, htons, ntohl, ntohs

Sintaxe:

uint32_t htonl(uint32_t hostlong);

uint16_t htons(uint16_t hostshort);

uint32_t ntohl(uint32_t netlong);

uint16_t ntohs(uint16_t netshort);

----------

As funções convertem e retornam um o endereço passado como parâmetro para um ordenamento de byte significativo. Sendo que as funções</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=if&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>if</title>
        <link>https://br-c.org/doku.php?id=if&amp;rev=1694560484&amp;do=diff</link>
        <description>Comando if

Sintaxe:


   if (condição)
   {
      bloco de comandos
   }


----------

O comando if funciona da seguinte maneira. Primeiramente a expressão da condição é avaliada. Caso o resultado seja verdadeiro (diferente de zero, o que significa verdadeiro em C) o bloco de comandos entre</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=inet_aton&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>inet_aton</title>
        <link>https://br-c.org/doku.php?id=inet_aton&amp;rev=1694560484&amp;do=diff</link>
        <description>Funções inet_aton, inet_addr e inet_ntoa

Sintaxe:

int inet_aton(const char * cp, struct in_addr *in);

in_addr_t inet_addr(const char * cp);

char * inet_ntoa(struct in_addr in);

----------

A função inet_aton converte o endereço passado (inclusive com pontos) para uma estrutura de endereços (binário) válido. Retorna um valor maior que 0 (zero) se a conversão ocorreu ou 0 (zero) se houve algum erro.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=isupper&amp;rev=1694560484&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>isupper</title>
        <link>https://br-c.org/doku.php?id=isupper&amp;rev=1694560484&amp;do=diff</link>
        <description>isupper: “verifica se o caracter ou inteiro passado como parâmetro é uma letra maiúscula”

Exemplo

#include &lt;iostream&gt;

#include &lt;cstdlib&gt;

#include &lt;cctype&gt; 

#include &lt;string&gt; 

using namespace std; 

int main () { 
char vt[10];
int i;printf(&quot;informe a string: &quot;);
gets(vt);
puts(vt);</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=listen&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>listen</title>
        <link>https://br-c.org/doku.php?id=listen&amp;rev=1694560485&amp;do=diff</link>
        <description>Função listen

Sintaxe:

int listen(int iSocket, int backlog);

----------

Após o socket (função socket) ter sido criada e uma porta associada (função bind) é necessário habilitar o socket para receber as conexões. A função listen faz justamente este papel ou seja, habilita que o programa servidor receba conexões de um programa cliente. Deve-se passar o descritor do</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=lseek&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>lseek</title>
        <link>https://br-c.org/doku.php?id=lseek&amp;rev=1694560485&amp;do=diff</link>
        <description>Função lseek

Sintaxe:

off_t lseek(int iFileDescritor,  off_t offset, int whence);

----------

Como visto anteriormente, tanto a leitura como a gravação de informações no arquivo é realizada a partir da posição atual do arquivo.

Com a função lseek pode-se posicionar em um determinado ponto do arquivo antes da leitura ou gravação de dados. O primeiro byte do arquivo é a posição 0 (zero).</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=main&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>main</title>
        <link>https://br-c.org/doku.php?id=main&amp;rev=1694560485&amp;do=diff</link>
        <description>Função main

Todo programa em C deve ter uma função chamada main. É por esta função que será iniciada a execução do programa. Deve-se especificar o tipo da saída da função, que pode ser int ou void. 

Caso seja colocado int, o valor retornado pela função</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=malloc&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>malloc</title>
        <link>https://br-c.org/doku.php?id=malloc&amp;rev=1694560485&amp;do=diff</link>
        <description>A função  malloc  (abreviatura de memory allocation) aloca um bloco de bytes consecutivos na memória do computador e devolve o endereço desse bloco.  O número de bytes é especificado no argumento da função. No seguinte fragmento de código, malloc aloca 1 byte:</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=open&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>open</title>
        <link>https://br-c.org/doku.php?id=open&amp;rev=1694560485&amp;do=diff</link>
        <description>Função open

Sintaxe:

int open(const char * path, int oflag, /* [mode_t mode]*/);

----------

Para se abrir um arquivo deve-se chamar a função open. A função recebe o nome do arquivo como parâmetro juntamente com o flag indicando o modo de abertura e flags informando opções adicionais de abertura e/ou tratamento de arquivo. Pode-se colocar todo o caminho do arquivo juntamente com o seu nome.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=operador_ternario&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>operador_ternario</title>
        <link>https://br-c.org/doku.php?id=operador_ternario&amp;rev=1694560485&amp;do=diff</link>
        <description>Operador ? :

Sintaxe:

(condição ? bloco_verdadeiro : bloco_falso)

----------

O operador ? : é uma maneira simplificada de escrever um if...else. Apesar de possuir a mesma funcionalidade não se deve usar este operador quando os comandos envolvidos são complexos.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=operadores&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>operadores</title>
        <link>https://br-c.org/doku.php?id=operadores&amp;rev=1694560485&amp;do=diff</link>
        <description>Operadores

Operadores Aritméticos
 Operador  Operação   +   Adição   -   Subtração   *   Multiplicação   /   Divisão   %   Módulo (resto da divisão) 
Todas estas operações exigem 2 operandos (números).

Operadores Unários
 Operador  Operação</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=padronizacao&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>padronizacao</title>
        <link>https://br-c.org/doku.php?id=padronizacao&amp;rev=1694560485&amp;do=diff</link>
        <description>História

A linguagem de programação C é uma linguagem de programação estruturada e padronizada criada na década de 1970 por Ken Thompson e Dennis Ritchie para ser usada no sistema operacional Unix. Desde então espalhou-se por muitos outros sistemas operacionais, e tornou-se numa das</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=palavras_reservadas&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>palavras_reservadas</title>
        <link>https://br-c.org/doku.php?id=palavras_reservadas&amp;rev=1694560485&amp;do=diff</link>
        <description>Palavras Reservadas do C

Todas as linguagens de programação têm palavras reservadas. As palavras reservadas não podem ser usadas a não ser nos seus propósitos originais, isto é, não pode-se declarar funções ou variáveis com os mesmos nomes. Como o C é</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=perror&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>perror</title>
        <link>https://br-c.org/doku.php?id=perror&amp;rev=1694560485&amp;do=diff</link>
        <description>Função perror
Sintaxe:

void perror( const char mensagem );

----------

Como a maioria dos erros ocorridos deve ser mostrada de maneira idêntica na saída de erro padrão, e baseado principalmente no valor da variável errno, pode-se usar a função perror que realiza todas estas tarefas automaticamente.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=ponteiros&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ponteiros</title>
        <link>https://br-c.org/doku.php?id=ponteiros&amp;rev=1694560485&amp;do=diff</link>
        <description>Ponteiros

Conceitos

A Linguagem C implementa o conceito de ponteiro. Um ponteiro é um tipo de dado como int, char ou float. A diferença do ponteiro em relação aos outros tipos de dados é que uma variável que seja ponteiro irá guardar um endereço de memória.

Através deste endereço pode-se acessar a informação, dizendo que a variável ponteiro</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=pre_compilacao&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>pre_compilacao</title>
        <link>https://br-c.org/doku.php?id=pre_compilacao&amp;rev=1694560485&amp;do=diff</link>
        <description>Pré-Compilação

Fases de uma compilação

[Fases de uma compilação]

O processo de compilação de um programa é constituído de três fases distintas:

	*  pré-compilação;
	*  compilação; 
	*  link-edição. 

Na fase de pré-compilação, o programa fonte é lido e caso se encontre comandos do pré-compilador, eles serão processados. O pré-compilador gera então um código intermediário que será lido pelo compilador.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=printf&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>printf</title>
        <link>https://br-c.org/doku.php?id=printf&amp;rev=1694560485&amp;do=diff</link>
        <description>Função printf

Sintaxe:

int printf(const char “formato”, ...);

Para se realizar a impressão de textos no terminal deve-se utilizar a função printf. Ela possui um número variado de parâmetros, tantos quantos forem necessários.

O primeiro parâmetro da função</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=processos&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>processos</title>
        <link>https://br-c.org/doku.php?id=processos&amp;rev=1694560485&amp;do=diff</link>
        <description>Conceito de Processo

Um programa em execução, o qual é constituído por uma seqüência de instruções, um conjunto de dados e um registro descritor.

Pode-se dizer também que um processo nada mais que um programa em execução, ou seja, o processo nada mais que o programa armazenado em disco em execução na CPU. Lembrando que um programa é estático e imutável e um processo é dinâmico e mutável.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=programas_uteis&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>programas_uteis</title>
        <link>https://br-c.org/doku.php?id=programas_uteis&amp;rev=1694560485&amp;do=diff</link>
        <description>Programas Úteis

Esta seção conterá pequenos programas, que em muitos casos são simples, mas ainda sim úteis.

Leitura de senha em C


/* senha.c */

#include &lt;unistd.h&gt;
#include &lt;termios.h&gt;
#include &lt;stdio.h&gt;
#include &lt;string.h&gt;

void getsen(char * psSenha, int iTamanho )
{
  int i;
  char cLetra;
  struct termios stTerminalModificado;
  struct termios stTerminalOriginal;
 
  tcgetattr(0, &amp;stTerminalModificado);
  stTerminalOriginal = stTerminalModificado;

  /* modifica o terminal para não eco…</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=putchar&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>putchar</title>
        <link>https://br-c.org/doku.php?id=putchar&amp;rev=1694560485&amp;do=diff</link>
        <description>Função putchar

Sintaxe:

int putchar( int caracter );

Arquivo header:

stdio.h

----------

Esta função é uma maneira simplificada de se mostrar um único caractere na tela. O argumento passado será convertido para caractere e mostrado na tela.

Veja o exemplo:</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=read&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>read</title>
        <link>https://br-c.org/doku.php?id=read&amp;rev=1694560485&amp;do=diff</link>
        <description>Função read

Sintaxe:

ssize_t read (int iFileDescriptor, void  * buffer, size_t nbyte);

----------

A função read realiza a leitura de dados do arquivo para a memória. Deve-se informar de qual descritor devem ser lidos os bytes. O descritor deve estar aberto com opção</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=recv&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>recv</title>
        <link>https://br-c.org/doku.php?id=recv&amp;rev=1694560485&amp;do=diff</link>
        <description>Funções recv e recvfrom

Sintaxe:

ssize_t recv(int s, void * buffer, size_t len);

ssize_t recvfrom(int s, void * buffer, size_t len, int flags, struct sockaddr * from, socklen_t * fromlen);

----------

A função recv é utilizada para receber (ler) uma mensagem de um socket. Para leitura de mensagens, também pode ser utilizada a função</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=rede&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>rede</title>
        <link>https://br-c.org/doku.php?id=rede&amp;rev=1694560485&amp;do=diff</link>
        <description>Programação Cliente Servidor em Linux

Características para um sistema ser considerado cliente/servidor:

	*  Uma arquitetura cliente/servidor consiste em um processo de cliente e um processo de servidor, que podem ser distinguidos um do outro, embora possam interagir totalmente.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=remove&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>remove</title>
        <link>https://br-c.org/doku.php?id=remove&amp;rev=1694560485&amp;do=diff</link>
        <description>Função remove

Sintaxe:

int remove(const char * path);

----------

A função remove/apaga o arquivo especificado pela variável path. Ela devolve 0 (zero) se a operação foi um sucesso e um valor diferente de zero de ocorreu um erro.

Veja o exemplo:</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=rename&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>rename</title>
        <link>https://br-c.org/doku.php?id=rename&amp;rev=1694560485&amp;do=diff</link>
        <description>Função rename

Sintaxe:

int rename (const char * source, const char * target);

----------

A função rename faz com que o arquivo indicado no primeiro parâmetro tenha o seu nome trocado pelo nome informado no segundo parâmetro. 

Caso os nomes se referenciem ao mesmo diretório está sendo realizado uma troca de nomes de arquivos. Caso o diretório origem seja diferente do diretório destino está sendo realizado uma movimentação de um arquivo de um diretório para o outro, com o mesmo ou outro nome.…</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=return&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>return</title>
        <link>https://br-c.org/doku.php?id=return&amp;rev=1694560485&amp;do=diff</link>
        <description>Comando return

Sintaxe:

return expressão;

----------

Quando uma função deve retornar valores utiliza-se o comando return. Quando este comando é executado o valor indicado é retornado para a função e a mesma encerra a sua execução, independente do local onde o</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=scanf&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>scanf</title>
        <link>https://br-c.org/doku.php?id=scanf&amp;rev=1694560485&amp;do=diff</link>
        <description>Função scanf

Sintaxe:

int scanf(const char formato, endereços_argumentos);

Header:

stdio.h

----------

Para realizar a entrada de valores para as variáveis deve ser utilizada a função scanf. A sintaxe desta função é muito parecida com o printf. Primeiramente, são informados quais os</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=send&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>send</title>
        <link>https://br-c.org/doku.php?id=send&amp;rev=1694560485&amp;do=diff</link>
        <description>Funções send e sendto

Sintaxe:

ssize_t send(int socket, const void * buffer, size_t len, int flags);

ssize_t sendto(int socket, const void * buffer, size_t len, int flags, const struct sockaddr * to, socklen_t tolen);

----------

A função send é utilizada para enviar uma mensagem para outro socket. Para o envio de mensagens, também pode ser utilizada a função</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=shutdown&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>shutdown</title>
        <link>https://br-c.org/doku.php?id=shutdown&amp;rev=1694560485&amp;do=diff</link>
        <description>Função shutdown

Sintaxe:

int shutdown(int s, int how);

----------

A função shutdown finaliza toda ou parte de uma conexão full-duplex. As funções retorna 0 (zero) em caso de sucesso ou –1 se houve algum erro.
Se for passado SHUT_RD para how, as recepções serão desabilitas. Caso seja passado</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=sinal&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>sinal</title>
        <link>https://br-c.org/doku.php?id=sinal&amp;rev=1694560485&amp;do=diff</link>
        <description>Tratamento de sinais

Funções

	*  signal
	*  kill
	*  raise
	*  sleep</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=sizeof&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>sizeof</title>
        <link>https://br-c.org/doku.php?id=sizeof&amp;rev=1694560485&amp;do=diff</link>
        <description>Operador sizeof

Existe um operador em C que indica o tamanho em bytes que uma determinada variável está utilizando na memória. Pode-se também colocar um determinado tipo como parâmetro que o resultado será o mesmo.

Este operador é muito utilizado quando se faz alocações dinâmicas de memória ou movimentações diretas na memória.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=sleep&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>sleep</title>
        <link>https://br-c.org/doku.php?id=sleep&amp;rev=1694560485&amp;do=diff</link>
        <description>Função sleep


#include &lt;stdio.h&gt;
#include &lt;time.h&gt;
#include &lt;unistd.h&gt;

int main (void)
{
   time_t st_hora; 

   st_hora = time(NULL);

   /* nao estranhe a quantidade de segundos, é contado a partir de 01/01/1970 */
   printf (&quot;\nNumero de segundos antes  : %d\n&quot;, st_hora);
   printf (&quot;\nDormindo 5 segundos\n&quot;);

   sleep(5); /* o tempo que o programa &#039;dormirá&#039; */

   time(&amp;st_hora);

   printf (&quot;Numero de segundos depois : %d\n&quot;, st_hora);
   return 0;
}</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=snprintf&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>snprintf</title>
        <link>https://br-c.org/doku.php?id=snprintf&amp;rev=1694560485&amp;do=diff</link>
        <description>Função snprintf

Arquivo header:

#include &lt;stdio.h&gt;

----------

Sintaxe:
int snprintf( char * endereçoString, size_t iQuantidade, formato, variável1, variável2, ...);

----------

A função snprintf tem a mesma funcionalidade da função sprintf. A saída resultante (respeitando o tamanho máximo, indicador por</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=sockaddr_in&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>sockaddr_in</title>
        <link>https://br-c.org/doku.php?id=sockaddr_in&amp;rev=1694560485&amp;do=diff</link>
        <description>Estrutura sockaddr

Para a programação socket, foram definidos estruturas padrão com os parâmetros que devem ser repassados para as demais funções. Para programas TCP/IP utiliza-se a estrutura sockaddr_in. Definida da seguinte forma:


struct sockaddr_in {
   short int sin_family;          /* família do endereço */
   unsigned short int sin_port;   /* número da porta */
   struct in_addr sin_addr;       /* endereço IP */
   unsigned char sin_zero[8];     /* complemento da estrutura, utilizar a f…</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=socket&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>socket</title>
        <link>https://br-c.org/doku.php?id=socket&amp;rev=1694560485&amp;do=diff</link>
        <description>Função socket

Sintaxe:

int socket(int domain, int type, int protocol);

----------

A função socket cria um ponto de comunicação e retorna um descritor para um arquivo ou –1 se houve algum erro (como as funções creat e open).
Deve-se passar o domínio da comunicação (tipo da comunicação). Normalmente, para comunicações TCP/IP utiliza-se</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=sprintf&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>sprintf</title>
        <link>https://br-c.org/doku.php?id=sprintf&amp;rev=1694560485&amp;do=diff</link>
        <description>Função sprintf

Arquivo header:

#include &lt;stdio.h&gt;

----------

Sintaxe:
int sprintf( char * endereçoString, formato, variável1, variável2, ...);

----------

A função sprintf tem a mesma funcionalidade da função printf. A saída resultante, após a execução dos formatos, será colocado na variável indicada por</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=sscanf&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>sscanf</title>
        <link>https://br-c.org/doku.php?id=sscanf&amp;rev=1694560485&amp;do=diff</link>
        <description>Função sscanf

Arquivo header:

#include &lt;stdio.h&gt;

----------

Sintaxe:
int sscanf( const  char * EndereçoSring, formato, endereços_variáveis_argumentos);

----------

A função sscanf é idêntica à função scanf, mas os dados são lidos da string. O valor devolvido é igual ao número de variáveis, às quais foram realmente atribuídos valores. Esse número não inclui variáveis que foram saltadas devido ao uso do especificador de</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=start&amp;rev=1694560640&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:17:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>start</title>
        <link>https://br-c.org/doku.php?id=start&amp;rev=1694560640&amp;do=diff</link>
        <description>Programação em C para ambiente LINUX

Esta página irá conter todas as funções, programas, descrições do livro “Programando em C para ambiente Linux, Unix e Windows”.
Esta página inicial está organizada nos mesmos tópicos do sumário do livro. Todos os programas foram testados no Linux com GCC, portanto, deverão funcionar no ambiente Unix também. Durante o processo de conversão de o livro para Wiki, os textos e programas sofrerão revisões e material adicional será incluído.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=static&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>static</title>
        <link>https://br-c.org/doku.php?id=static&amp;rev=1694560485&amp;do=diff</link>
        <description>Definição static

Sintaxe:

static tipo_variável nome_variável

----------

Como padrão toda variável definida dentro de uma função é alocada na pilha interna de execução da função. Ao final da função a pilha é liberada, liberando assim a memória alocada pela variável. Na próxima chamada à função é feita uma nova alocação na pilha assim por diante.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=strcat&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>strcat</title>
        <link>https://br-c.org/doku.php?id=strcat&amp;rev=1694560485&amp;do=diff</link>
        <description>Função strcat

Arquivo header:

#include &lt;string.h&gt;

Sintaxe:
char * strcat( char * endereçoStringDestino, char * endereçoStringOrigem );

----------

Pode-se fazer a concatenação de dois strings, colocando um ao final do outro. A função para se fazer isto é</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=strcmp&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>strcmp</title>
        <link>https://br-c.org/doku.php?id=strcmp&amp;rev=1694560485&amp;do=diff</link>
        <description>Função strcmp

Arquivo header:

#include &lt;string.h&gt;

Sintaxe:

int strcmp( const char * endereçoString1, const char * endereçoString2 );

----------

Para se comparar o conteúdo de dois strings deve-se usar a função strcmp. Essa função irá fazer a comparação, caractere a caractere, dos dois parâmetros informados. Como não é alterado o conteúdo de nenhum parâmetro, pode ser informado um valor constante em qualquer um deles, apesar de se fazer mais sentido usar a constante como segundo parâmetro.…</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=strcpy&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>strcpy</title>
        <link>https://br-c.org/doku.php?id=strcpy&amp;rev=1694560485&amp;do=diff</link>
        <description>Função strcpy

Arquivo header:


#include &lt;string.h&gt;


Sintaxe:

char * strcpy( char * endereçoStringDestino, char * endereçoStringOrigem );

----------

Quando se quiser copiar o conteúdo de uma string para outro se deve utilizar a função strcpy. O conteúdo da segunda variável ou constante informada será copiado para a área indicada no primeiro parâmetro.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=strerror&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>strerror</title>
        <link>https://br-c.org/doku.php?id=strerror&amp;rev=1694560485&amp;do=diff</link>
        <description>Função strerror

Sintaxe:

char * strerror(int error);

----------

Caso se queira mostrar a mensagem correspondente ao erro ocorrido, ou se queira gerar um erro dentro do programa que utilize a mesma mensagem padrão do sistema operacional, deve-se usar a função</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=strings&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>strings</title>
        <link>https://br-c.org/doku.php?id=strings&amp;rev=1694560485&amp;do=diff</link>
        <description>Strings em C

Implementação de Strings

A linguagem C implementa o conceito de cadeia de caracteres, ou strings, utilizando um vetor de caracteres. Ao se definir uma string portanto deve-se definir um vetor de caracteres com determinado tamanho. 

A marcação do fim da string será indicada através da colocação de um caractere zerado, chamado tecnicamente de caractere</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=strlen&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>strlen</title>
        <link>https://br-c.org/doku.php?id=strlen&amp;rev=1694560485&amp;do=diff</link>
        <description>Função strlen

Arquivo header:

#include &lt;string.h&gt;

Sintaxe:

size_t strlen(cost char *nome_da_string);

----------

Esta função irá retornar a quantidade de caracteres existentes em uma string, não considerando o caractere NULL na contagem dos caracteres.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=strncat&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>strncat</title>
        <link>https://br-c.org/doku.php?id=strncat&amp;rev=1694560485&amp;do=diff</link>
        <description>Função strncat

Arquivo header:

#include &lt;string.h&gt;

----------

Sintaxe:
char * strncat( char * endereçoStringDestino, char * endereçoStringOrigem, size_t iQuantidade );

----------

A função strncat tem o mesmo comportamento da função strcat, exceto por concatenar não mais que quantidade caracteres (indicado por</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=strncmp&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>strncmp</title>
        <link>https://br-c.org/doku.php?id=strncmp&amp;rev=1694560485&amp;do=diff</link>
        <description>Função strncmp

Arquivo header:

#include &lt;string.h&gt;

----------

Sintaxe:
int strncmp( const char * endereçoString1, const char * endereçoString2, size_t iQuantidade );

----------

Essa função irá fazer a comparação, caractere a caractere, dos dois parâmetros informados, como a função</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=strncpy&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>strncpy</title>
        <link>https://br-c.org/doku.php?id=strncpy&amp;rev=1694560485&amp;do=diff</link>
        <description>Função strncpy

Arquivo header:

#include &lt;string.h&gt;

----------

Sintaxe:
char * strncpy( char * endereçoStringDestino, const char * endereçoStringOrigem, size_t iQuantidade );

----------

A função strncpy tem o mesmo comportamento da função strcpy, exceto por copiar até quantidade caracteres da string</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=strstr&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>strstr</title>
        <link>https://br-c.org/doku.php?id=strstr&amp;rev=1694560485&amp;do=diff</link>
        <description>Função strstr

Arquivo header:

#include &lt;string.h&gt;

----------

Sintaxe:

char * strstr( const char * endereçoStrOrigem, char * endereçoStrChave);

----------

A função strstr devolve um ponteiro para a primeira ocorrência da string apontada por endereçoStrChave na string apontada por</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=strtok&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>strtok</title>
        <link>https://br-c.org/doku.php?id=strtok&amp;rev=1694560485&amp;do=diff</link>
        <description>Função strtok

Arquivo header:

#include &lt;string.h&gt;

----------

Sintaxe

char * strtok( char * endereçoStrOrigem, char * endereçoStrDelimitador);

----------

A função strtok devolve um ponteiro para a próxima palavra na string apontada por endereçoStrOrigem. Os caracteres que formam a string apontada por</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=switch&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>switch</title>
        <link>https://br-c.org/doku.php?id=switch&amp;rev=1694560485&amp;do=diff</link>
        <description>Comando switch...case

Sintaxe:


   switch (expressão) 
   {
      case constante 1:
      { bloco de comandos 1...;
        break;
      }
      case constante 2:
      { bloco de comandos 2...;
        break;
      }
      .......
      default : 
      { 
         bloco de comandos n... 
      }
   }</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=threads_posix&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>threads_posix</title>
        <link>https://br-c.org/doku.php?id=threads_posix&amp;rev=1694560485&amp;do=diff</link>
        <description>Threads POSIX

Compilação de um programa C com suporte as threads POSIX:  gcc teste_thread.c -oteste_thread -lpthread

Funções

	*  pthread_detach
	*  pthread_self
	*  pthread_exit
	*  pthread_create
	*  pthread_join
	*  pthread_mutex_lock
	*  pthread_mutex_lock

Concorrência entre threads

Este programa não implementa a concorrência de acesso a variável</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=tipos_dados&amp;rev=1694560485&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>tipos_dados</title>
        <link>https://br-c.org/doku.php?id=tipos_dados&amp;rev=1694560485&amp;do=diff</link>
        <description>Tipos Básicos

Para se criar variáveis em um programa C deve-se indicar para o compilador qual o tipo desta variável. Uma variável pode ter um tipo básico, intrínseco à linguagem C ou tipo estruturado, montado pelo programador. O programador pode criar novos tipos de dados, utilizando a declaração</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=typedef&amp;rev=1694560486&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>typedef</title>
        <link>https://br-c.org/doku.php?id=typedef&amp;rev=1694560486&amp;do=diff</link>
        <description>Declaração typedef

Na linguagem C pode-se dar um outro nome a um tipo determinado. Isto é feito através da declaração typedef. Isto é muito usado para se manter a compatibilidade entre os sistemas operacionais e também para encurtar algumas definições longas, simplificando o programa.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=unlink&amp;rev=1694560486&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>unlink</title>
        <link>https://br-c.org/doku.php?id=unlink&amp;rev=1694560486&amp;do=diff</link>
        <description>Função unlink

Sintaxe:

int unlink(const char * path);

----------

A remoção de um arquivo de um sistema de arquivo é feita através da função unlink. Este nome é devido a que a função simplesmente recebe um nome de arquivo como parâmetro e decrementa o número de links existente no</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=variavel_definicao&amp;rev=1694560486&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>variavel_definicao</title>
        <link>https://br-c.org/doku.php?id=variavel_definicao&amp;rev=1694560486&amp;do=diff</link>
        <description>Definição de Variáveis

Para se usar uma variável em C, ela deve ser definida indicando o seu tipo e o seu nome. Para se fazer isto se deve usar a seguinte sintaxe:

tipo nome1 [, nome2]... ;

Pode-se definir em uma mesma linha mais de uma variável, bastando para isto colocar os nomes das variáveis separados por vírgulas. Isto deve ser usado somente quando as variáveis são simples e não se precisa explicar o uso das mesmas. Como sugestão deve-se colocar sempre uma única variável por linha e após…</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=vetor_matriz&amp;rev=1694560486&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>vetor_matriz</title>
        <link>https://br-c.org/doku.php?id=vetor_matriz&amp;rev=1694560486&amp;do=diff</link>
        <description>Vetores e Matrizes

Definindo Vetores

Sintaxe:

tipo_variável nome_vetor[tamanho];

----------

Define-se como vetor uma variável que possui várias ocorrências de um mesmo tipo. Cada ocorrência é acessada através de um índice. Os vetores também são chamados de matrizes unidimensionais por possuírem somente um índice.</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=wait&amp;rev=1694560486&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>wait</title>
        <link>https://br-c.org/doku.php?id=wait&amp;rev=1694560486&amp;do=diff</link>
        <description>Função wait

Sintaxe:

#include &lt;sys/types.h&gt;

#include &lt;sys/wait.h&gt;

pid_t wait(int * iStatus);

----------

O processo pai pode esperar o término de um processo filho através da chamada da função wait. A função wait devolverá o status de retorno de qualquer processo filho que termine. O processo que chamar a função apresentará um dos seguintes comportamentos:</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=waitpid&amp;rev=1694560486&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>waitpid</title>
        <link>https://br-c.org/doku.php?id=waitpid&amp;rev=1694560486&amp;do=diff</link>
        <description>Função waitpid


#include &lt;stdio.h&gt;
#include &lt;unistd.h&gt;
#include &lt;sys/types.h&gt;
#include &lt;sys/wait.h&gt; 

int main(void)
{
   pid_t iPid;
   int iStatus;


   if( (iPid = fork())&lt;0) /* cria um processo filho */
   {
      perror(&quot;Erro no fork&quot;);
      return 0;
   }

   if( iPid != 0) /* no processo pai*/
   {
      printf(&quot;\nCriado o processo %d&quot;, iPid);
      while(1)
      {
         printf(&quot;\nEsperando o status do filho.&quot;);
         waitpid(iPid,&amp;iStatus,WUNTRACED);
         printf(&quot;\nStatus do…</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=while&amp;rev=1694560486&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>while</title>
        <link>https://br-c.org/doku.php?id=while&amp;rev=1694560486&amp;do=diff</link>
        <description>Comando while

Sintaxe:


   while (condição)
   {
      bloco de comandos
   }


----------

O comando while deve ser usado quando não se pode determinar com certeza quantas vezes um bloco de comandos será executado. 

Inicialmente a condição é testada. Caso seja falso, o programa não executará o bloco de comando indicado e continuará no comando após o comando</description>
    </item>
    <item rdf:about="https://br-c.org/doku.php?id=write&amp;rev=1694560486&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-12T16:14:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>write</title>
        <link>https://br-c.org/doku.php?id=write&amp;rev=1694560486&amp;do=diff</link>
        <description>Função write

Sintaxe:

ssize_t write (int iFileDescriptor, const void * buffer, size_t nbyte);

----------

A função write grava no arquivo indicado pelo descritor as informações obtidas do endereço fornecido. Os dados serão gravados a partir da posição atual do arquivo. Caso a opção</description>
    </item>
</rdf:RDF>
