-
Recent Posts
Recent Comments
- Adriano on PHP: Atribuição condicional (ternário)
- ゴヤール 店舗 on Tcl/Tk: Como copiar e colar (clipboard, área de transferência)
- Roberto on Javascript: Construindo listas dinamicamente
- 厦门钰盛工贸有限公司,位于福建厦门市集美区厦门集美区东安村四埭尾5号,这里有相 on MySQL: INSERT com SELECT na mesma query
- Vagner on Javascript: Validação dentro do XHTML com CDATA
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: CPP
C/C++: cannot open shared object file
As bibliotecas compartilhadas são carregadas no início da execução de um programa. No Linux, o dynamic loader procura pelas bibliotecas em /lib e /usr/lib. Caso a biblioteca não esteja presente neste caminho, recebemos uma mensagem de erro parecida com a … Continue reading
Posted in C, CPP, Linux
Tagged -rpath, biblioteca, error, gcc, ld, LD_LIBRARY_PATH, linker, shared libraries
7 Comments
C, C++: Dupla negação para conversão em booleano
Em C não existe um tipo nativo booleano, temos 0 como falso e tudo diferente de 0 é verdadeiro. Em C++ existe o tipo booleano, onde verdadeiro e falso correspondem respectivamente a 0 e 1. Uma forma de fazer um … Continue reading
C, C++: Vetores de tamanho zero
Um recurso bastante útil do GCC (apenas) são vetores de tamanho zero. O uso é permitido apenas como último elemento de uma estrutura de dados. struct pessoa { int idade; char nome[0]; }; printf(“%d\n”, sizeof(struct pessoa)); // Imprime “4″ Note … Continue reading
C, C++: Cuidado com funções definidas como macros
Imagine uma função definida em uma macro que faça a potência de dois de um determinado número. Ela poderia ser definida da seguinte forma: #define quadrado(n) \ n * n Acontece que o comportamento, dependendo dos parâmetros, nem sempre é … Continue reading
C, C++: Usando a seção de dados
As variáveis da pilha de execução, são automaticamentes desalocadas quando a mesma retorna. No caso do exemplo a seguir, o retorno da função teste() é o endereço de memória da string “Teste123″ (ou seja, para onde str aponta e não … Continue reading
C, C++: Banir funções usando o pré-processador
Quem usa o GCC pode tirar vantagem do pré-processador para banir de vez do código algumas funções consideradas maléficas como gets() e sprintf(), por exemplo. Basta acrescentar no seu código a seguinte linha: #pragma GCC poison gets sprintf Um erro … Continue reading
C++: hash_set, hash_map
Apesar dos templates para hash_set e hash_map não serem padronizados, ambos são relativamente comuns, estando disponíveis tanto na implementação GNU (ie, no GCC) quanto no Visual C++ no Windows. Existem algumas diferenças, como o namespace um pouco mais escondido no … Continue reading
C++: Ponteiro para métodos/funções sobrecarregadas
Para obter ponteiros a métodos ou funções sobrecarregadas, como exemplo: class Foo { public: void bla(int a); int bla() const; }; Se tentarmos usar o nome da função diretamente, o compilador não saberá a qual dos métodos você se refere. … Continue reading
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