[cs631apue] Size of large ints

yluo4 yluo4 at stevens.edu
Sun Oct 13 22:49:57 EDT 2013


Sorry, the code I given has a little mistake.  It should be:

   len = 1;
   while ((size = size / 10)) {
    len++;
   }

this can support any large size.

On 10/13/2013 9:08 PM, Paul-Anthony Dudzinski wrote:
> I ended up doing this:
> 
>         char filesize[100];
>         sprintf(filesize, "%ld", a->fts_statp->st_size);
> 
>         nlen_size = strlen(filesize);
>         if (nlen_size > len_size)
>                 len_size = nlen_size;
> 
> It's not pretty, and it only supports integers 100 chars long but I
> will probably end up setting it as a constant at the top of my program
> so it can be easily changed. It also has the distinct advantage of
> working.
> 
> On Sun, Oct 13, 2013 at 7:33 PM, yluo4 <yluo4 at stevens.edu> wrote:
> 
>> I think you can use following code:
>> 
>>  len = 1;
>>  while (size / 10) {
>>   len++;
>>  }
>> 
>> to get the len of the size.
>> 
>> On 10/13/2013 5:06 PM, Paul-Anthony Dudzinski wrote:
>> 
>>> Hey all,
>>> I am looking for a good way to measure the size of a large
>>> integer for
>>> instance when I run my program on /tmp I get:
>>> 
>>> pdudzins at gits:~/cs631/midterm$ ./a.out -l /tmp
>>> 
>>> drwxrwxrwx  2 root     root          4096 .X11-unix
>>> -rw-------  1 jschauma professor    10724 1
>>> 
>>> drwxr-xr-x  3 swatts   student       4096
>>> VisualGDB-RW-------  1
>>> JSCHAUMA PROFESSOR 2097152000 [1] BIG
>>> 
>>>  -rwxr-xr-x  1 swatts   student         56
>>> dump-gdb-settings
>>> -rw-r--r--  1 jschauma professor     2041 f
>>> -rw-------  1 jschauma professor     2041 file
>>> drwxr-xr-x  2 jsexton  student       4096 hsperfdata_jsexton
>>> drwxr-xr-x  2 lxiong   student       4096 hsperfdata_lxiong
>>> drwxr-xr-x  2 snatara1 student       4096 hsperfdata_snatara1
>>> -rw-------  1 fcannava professor      611 krb5cc_11084_S26665
>>> -rw-------  1 jrisi    student        605
>>> krb5cc_11492_u17070
>>> -rw-------  1 pdudzins student        611
>>> krb5cc_11909_Iq7884
>>> drwx------  2 jschauma professor     4096 ssh-OkXFz27774
>>> 
>>> And the bolded line is messing up my column print lengh. When I
>>> measure the size of the size I am doing it like this:
>>> 
>>>         nlen_size =  sizeof(a->fts_statp->st_size);
>>>         if (nlen_size > len_size)
>>>                 len_size = nlen_size;
>>> 
>>> And I keep getting 8 instead of 10 which I am pretty sure the 8
>>> bytes
>>> it takes to store an int...
>>> 
>>> Has anyone tried casting this as a character array and taking the
>>> size
>>> that way? Is there a library function that will just do this?
>>> 
>>> _______________________________________________
>>> cs631apue mailing list
>>> cs631apue at lists.stevens.edu
>>> https://lists.stevens.edu/mailman/listinfo/cs631apue [2]
>> 
>> _______________________________________________
>> cs631apue mailing list
>> cs631apue at lists.stevens.edu
>> https://lists.stevens.edu/mailman/listinfo/cs631apue [2]
> 
> 
> 
> Links:
> ------
> [1] tel:2097152000
> [2] https://lists.stevens.edu/mailman/listinfo/cs631apue


More information about the cs631apue mailing list