Enviado em 09/11/2016 - 09:23h
Olá pessoal !
/*
**-------------------------------------------------------------------
**
** PIPE TEST:
**
** ARQUIVO:
** pipe.c
**
** COMPILE:
** gcc pipe.c -o pipe -Wall
**
**-------------------------------------------------------------------
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <io.h>
#include <fcntl.h>
char string[1024], buf[10];
int stdout_saved, i;
int mypipe[2];
int main()
{
stdout_saved = dup (STDOUT_FILENO); // salva
#ifdef __linux__
if (pipe(mypipe)) {
#endif
#ifdef _WIN32
if (_pipe (mypipe, 1024, O_TEXT)) {
#endif
printf ("pipe nao funfa ...\n");
return 0;
}
dup2 (mypipe[1], STDOUT_FILENO); // redireciona para stdout
close (mypipe[1]);
printf("PRIMEIRA LINHA\n");
printf("Segunda LInha\n");
printf("TERCEIRA CASA\n");
printf("CONTINUANDO FINALIZANDO testando\n");
printf("ULTIMA LINHA\n");
fflush (stdout);
//-------------------------------------------
// FICA PRESO AQUI NO LOOP ...
//-------------------------------------------
// Como copiar para o string sem "terminar o pipe" ???
//-------------------------------------------
//
i = 0;
while (read(mypipe[0], buf, 1))
{
string[i++] = buf[0];
}
string[i] = 0;
//-------------------------------------------
dup2 (stdout_saved, STDOUT_FILENO); // normaliza ( stdout ) para testar
/*
//------------------------------------------------------------
// se colocar aqui funciona normal ... nao fica presso no loop
//------------------------------------------------------------
//
i = 0;
while (read(mypipe[0], buf, 1))
{
string[i++] = buf[0];
}
string[i] = 0;
*/
printf("STRING(%s)\n", string);
return 0;
}
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Instalar o Microsoft Edge no Slackware 15
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Formatando cartão de memoria que nao formata[AJUDA] (14)
warsaw parou de funcionar após atualização do sistema (solução) (0)
Desde que seja DDR3, posso colocar qualquer memória? [RESOLVIDO] (6)
crontab executar em tempos (1)
Programa duplicado no "Abrir com" e na barra de pesquisa do ... (3)