On Tue, Sep 08, 2009 at 09:40:30PM +0700, Randi Botse 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); printf them all and check them: printf("\rcompleted: %i%% bytes: %d size: %d \n", progress, bytes, size); > 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 -- -------------------------------- http://zhwen.org - Open and Free -- 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