-
Recent Posts
Recent Comments
Tags
$HOME alias ano AppleScript argv array bc biblioteca C clipboard comando copy CPP curdate cálculo daemon dia error execução foreach gcc IP JavaScript LaTeX memória MySQL mês número números objeto paste perímetro PHP pi posix Python Shell stdout strings tabela Tcl-Tk Tcl/Tk terminal variável área de transferênciaArchives
Livros da equipe do CODARE
Expressões Regulares
Uma Abordagem Divertida
de Aurélio Marinho Jargas
Shell Script Profissional
de Aurélio Marinho Jargas
PHP-GTK 2ª Edição
de Pablo Dall'Oglio
PHP Programando com Orientação a Objetos
de Pablo Dall'Oglio
Ruby: Conhecendo a Linguagem
de Eustáquio Rangel (TaQ)
Category Archives: C
C, C++: Obter macros definidas pelo pré-processador
Palavras-chave: C, pré-processador, macros, macro, define, gcc O pré-processador do GCC define uma série de macros por default. Muitas delas podem lhe ser útil, caso se deseje que um determinado bloco de código seja compilado para apenas uma determinada arquitetura, … Continue reading
Posted in C, CPP
Leave a comment
C, C++: Fechar a saída padrão e de erro (stdout, stderr)
Uma forma de impedir que seu programa imprima na tela, seja por linkar com uma biblioteca que abusa da verbosidade ou para garantir que um daemon não polua seu terminal quando for para background, é fechando a saída padrão (stdout) … Continue reading
C, C++: Parâmetro não utilizado
Palavras-chave: warning, unused parameter, variable Em alguns casos temos que implementar uma função (na maioria dos casos uma callback) cujo o protótipo já é definido pela API utilizada. Alguns parâmetros podem ser desnecessários, mas geram warnings de compilação caso não … Continue reading
Posted in C, CPP
4 Comments
C, C++: Alocação dinâmica na pilha
Palavras-chave: non-constant initializers, dynamic stack allocation Muitas vezes alocamos memória para um buffer baseado em um tamanho que é passado como parâmetro para a função. Como no seguinte exemplo: void foobar (size_t size) { char *buffer = malloc(size * 2); … Continue reading
Posted in C, CPP
6 Comments
C, C++: Funções com número variável de parâmetros (stdargs)
Palavras-chave: C, C++, varargs, argumentos variáveis Para escrever funções que aceitam quantidade variável de parâmetros, usa-se o mecanismo de stdargs do C. Para isso coloca-se “…” como último parâmetro na declaração da função e depois usa-se as funções de stdarg.h … Continue reading
Posted in C, CPP
6 Comments
C: Ler linhas de um arquivo texto de maneira portável
Palavras-chave: C, arquivo texto, linhas, leitura, getline Como dito num post anterior, a glibc possui uma função para ler linhas de comprimento arbitrário de um arquivo texto. Mas como esta função é especifica a glibc, alguns leitores pediram uma versão … Continue reading
Posted in C
13 Comments
C: Checar se arquivos de entrada e saída são diferentes
Palavras-chave: C, stdin, stdout, descritor, descriptor, inode, comparar, compare Ao escrever filtros (programas que processam dados provenientes da entrada padrão e os escrevem na saída padrão) pode-se querer evitar que o arquivo de entrada seja o mesmo arquivo utilizado para … Continue reading
Posted in C
Leave a comment
C: Linkagem estática não encontra funções
Palavras-chave: C, linkagem estática, undefined reference, referência indefinida Ao linkar programas que usam bibliotecas estáticas que por usa vez usam outras bibliotecas estáticas, pode ocorrer de o linker reclamar da falta de símbolos de uma das bibliotecas, apesar de eles … Continue reading
Posted in C
3 Comments
C: Macros como funções com o while (0)
Palavras-chave: C, macro, multi-statement, cpp, pré-processador, preprocessor Com alguma freqüência é necessário de definir macros com múltiplos comandos (statements) que possam ser usados de forma sintaticamente equivalente a chamadas de função. Nesse caso, não basta definir uma seqüência como: #define … Continue reading
Posted in C
4 Comments
C: varargs com macros no gcc
Palavras-chave: C, gcc, cpp, macros, …, varargs, número de parâmetros variável, variadic macros Para escrever macros de função com número variável de argumentos: #define DPRINT(fmt, …) printf(“DEBUG: “fmt”\\n”, ## __VA_ARGS__) __VA_ARGS__ será substituído pelos parâmetros dados. E o ## entre … Continue reading
Posted in C
11 Comments