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;
}
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Instalação Uefi com o instalador clássico do Mageia (1)
Vou voltar moderar conteúdos de Dicas e Artigos (0)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta