07. maj 2006 - 20:10
Der er
6 kommentarer og 1 løsning
fgets() kan ikke hente alle linjerne ind.
hej eksperter... Jeg er nybegynder i C og vil meget gerne lære sproget, jeg bruger linux (Debian) jeg har derfor givet mig selv den udfordring at lave en GUI til et program der ellers kun kør i konsollen. Men jeg kan ikke hente alle linjerne ind fra konsollen, nogle bliver stående...!! Selv når jeg i konsollen skriver kommando>log og åbner log bagefter kommer alle linjerne ikke med.... hvad er der galt, og kan der gøres noget ved det ??
Annonceindlæg fra Infor
ja det er et eksisterende program.. Okay, har lige læst op på stdout og stderr, er jo som sagt nybegynder inden for C :) og det lyder sandsynligt at det er stderr. jeg ikke kan læse.... er det muligt at læse stderr også ? jeg bruger følgende kode til at "læse": FILE *in; extern FILE *popen(); char buff[5129]; char output[999999]; if (!(in = popen(command, "r"))) { exit(1); } while (fgets(buff, sizeof(buff), in) != NULL ) { sprintf(output, "%s%s", output, buff); } pclose(in);