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 DE-CIX
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);