Where do you initialize the variable size and to what value ? On Tue, Sep 8, 2009 at 10:40 AM, Randi Botse <nightdecoder@xxxxxxxxx> wrote: > > hi all, > > .... > int fd, fdp; > unsigned int size; > int progress = 0; > size_t bytes = 0; > void *buffer; > .... > > /* open fd from a device then create fdp, allocate buffer,, etc. */ > > while (bytes < size) { > ret = read(fd, buffer + bytes, size - bytes); > if (ret == -1) { > perror("read"); > return -1; > } > ret = write(fdp, buffer + bytes, ret); > if (ret == -1) { > perror("write"); > return -1; > } > bytes += ret; > > progress = (int) ((bytes / size) * 100); > printf("\rcompleted: %i%%", progress); > fflush(stdout); > } > > .... > > I run this loop to receive some data, the printf() seem not updated, > the progress output is > always in it's initial value until the loop was finished. but when i do... > > progress = (int) ((bytes / 2) * 100); /* change size to 2 (or random number) */ > > then it's works... what's wrong here??? > -- > To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Saurabh Sehgal E-mail: saurabh.r.s@xxxxxxxxx Phone: 647-831-5621 LinkedIn: http://www.linkedin.com/pub/1/7a3/436 -- To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html