Re: Division in loop

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


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

[Linux Assembler]     [Git]     [Kernel List]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [Yosemite Campsites]     [Yosemite News]     [GCC Help]

Add to Google Powered by Linux