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 [...]
Archive for the 'Linux' Category
Threads em C++ no Linux
Fevereiro 17, 2009Criando bibliotecas dinâmicas em C
Outubro 17, 2008Muitas 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, 2008Normalmente, 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, 2007Sabendo-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, 2007Para 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, 2007Se 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, 2007Post 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, 2007Estou 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, 2007Como 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 [...]