Archive for the 'Linux' Category

Threads em C++ no Linux

Fevereiro 17, 2009

Uma thread é como uma linha de execução de um programa, que executa “paralelamente” com o restante do código do programa. A idéia é, a partir do ponto desejado, criar uma espécie de processo filho, que compartilhe os recursos com o programa pai. Porém, não é como a chamada “fork()”, que duplica o processo completo [...]

Criando bibliotecas dinâmicas em C

Outubro 17, 2008

Muitas vezes temos a necessidade de incluir bibliotecas dinâmicas de terceiros em nossos programas. Este já é um processo consideravelmente comum para quem desenvolve software.
Porém algumas vezes, precisamos ou desejamos ser os produtores destas bibliotecas, para que outros possam utilizar nossas bibliotecas, ou mesmo para “modularizar” ou “desacoplar” parte do código do executável principal.
Desacoplar parte [...]

Instalando o DBDesiner no Gentoo Linux

Janeiro 28, 2008

Normalmente, no Gentoo é só pensar no que se quer baixar, e digitar “emerge -av <nome_programa>”. Porém, o ebuild do DBDesigner não foi mantido nos repositórios do Portage. Portanto, caso seja necessário usá-lo, pode-se instalar desta forma:
Primeiramente, é necessário efetuar o download do pacote que contém os binários compilados do DBDesigner, no site oficial:
http://fabforce.net/downloads.php (Baixar [...]

Configurando o Horário de Verão no Linux

Outubro 29, 2007

Sabendo-se que no Brasil os horários de verão não possuem dias fixos para início e fim no calendário, devemos, a cada ano que passa, ajustar manualmente nosso TimeZone. Para fazer isso no Linux é relativamente simples.
Primeiro devemos criar um arquivo informando as regras, que indicam o início e fim do horário de verão.
Criaremos então um [...]

Configurando a inicialização em um Sistema Debian Linux

Outubro 23, 2007

Para as distros da família Red Hat, eu utilizava o comando “chkconfig” para gerenciar a inicialização do sistema. Porém, no Debian, este programa não existe. Então, seu “substituto” é o “update-rc.d”, que como o chkconfig, insere/remove programas no startup do Linux.
Utilização (como root):
Adicionando programas na inicialização:
~$ update-rc.d <script> defaults
ou, configurando sua ordem na inicialização, [...]

Dividindo arquivos no Linux

Outubro 1, 2007

Se um dia você precisar dividir arquivos em pedaços menores, isto pode ser feito através do comando “split”:
Dividindo em N arquivos de <bytes>:
$ split -b <bytes> <arquivo> <nome_pedacos>
Exemplo:
$ split -b 1m backup.zip partes
Isto irá gerar N arquivos prefixados por <nome_pedacos> com 1Mb cada.
Para juntar tudo isso basta fazer:
$ cat <nome_pedacos>* > <arquivo>
Exemplo:
$ cat partes* > [...]

Permitindo acesso via Telnet – Linux

Setembro 5, 2007

Post rápido:
Caso se faça necessário permitir acesso via telnet em uma máquina Linux.
Insira a seguinte linha no arquivo “/etc/inetd.conf”:
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
Salve o arquivo e reinicie o serviço do superserver:
$ /etc/init.d/inetd restart
A partir de agora é possível acessar a máquina, de qualquer outra máquina da rede através do comando:
$ telnet <ip>
ou
$ [...]

ioctl()

Maio 7, 2007

Estou aprendendo a usar esta system call para fazer controle de dispositivos. Hoje é o primeiro dia, então fiz um exemplo simples que faz os leds dos teclado piscarem.
piscaleds.cpp
#include <sys/ioctl.h>
#include <linux/kd.h>
#include <fcntl.h>
#include <iostream>

int main(int argc, char **argv){
/*
* Abrir o dispositivo teclado para leitura
*/
int teclado = open(“/dev/tty0″, O_RDONLY);

/*
* Inicializando o contador para variar [...]

enscript.sh

Maio 4, 2007

Como eu nunca lembro os parâmetros para usar o enscript, para fazer meus códigos fontes ficarem coloridos para eu colocar aqui no blog, e toda vez que eu preciso fazer isso tenho que entrar no blog do Ricardo, fiz um script que corta a maioria das opções do enscript, mas para o que eu preciso [...]

Perl + Python + Fifos

Maio 4, 2007

Hoje vou postar um código de teste de uso de pipes nomeados com perl e python. Como já havia postado, pipes nomeados são usados para comunicação entre processos.
Neste caso, em um exemplo simples, mostra-se um programa em perl que escreve em um pipe nomeado e um programa em [...]