Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

269
Views
No se puede redirigir printf a la tubería

Quiero redirigir la salida de printf a una tubería, pero por alguna razón parece que no funciona. Lo que sí funciona es usar write en su lugar.

este es mi programa

 #include <stdio.h> #include <stdlib.h> #include <sys/wait.h> #include <string.h> #include <sys/types.h> #include <unistd.h> int main(int argc, char **argv) { int fd[2]; pipe(fd); pid_t id = fork(); if (id < 0) { fprintf(stderr, "Error while forking #1!"); exit(1); } else if (id == 0) { dup2(fd[0], STDIN_FILENO); close(fd[1]); char msg[200]; read(STDIN_FILENO, msg, 200); fprintf(stderr, "received message: %s", msg); } else { dup2(fd[1], STDOUT_FILENO); close(fd[0]); char msg[] = "Hello from parent!\n"; write(STDOUT_FILENO, msg, strlen(msg)); /* printf("%s",msg); */ while(wait(NULL)>0); } exit(EXIT_SUCCESS); }

si reemplazo write con la línea comentada, mi programa simplemente bloquea

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Agregue un carácter de nueva línea (\n) a su salida o use fflush() como sugiere Barmar:

fprintf(stderr, "¡Error al bifurcar #1!\n");

o

fprintf(stderr, "¡Error al bifurcar #1!"); fflush(stderr);

por cierto, se recibe, no se recibe;)

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!