* negative mfs size at large memory [#u8b08276]

- ページ: [[LiveCD/4.4/BTS]]
- 投稿者: [[kaw]]
- 優先順位: 低
- 状態: 着手
- カテゴリー: malfunction
- 投稿日: 2009-02-26 (木) 09:03:35
- バージョン: 

** メッセージ [#z0e47bba]
more than 2^31 bytes are displayed as negative value. ~
Because ksh can handle integer range of -2^31 ... 2^31-1

On ksh, this is like this;
 $ echo $((2147483647))     # 2^31-1
 2147483647
 $ echo $((2147483647+1))   # 2^31
 -2147483648
Here's a concept code to check two strings representing big non-negative integer values.
 #!/bin/ksh
 
 function isgreater {
     # check presence of arguments
     #
     [ $# -lt 2 ] && return -- -1
 
     x=$1
     y=$2
 
     # Are arguments both form of positive integer?
     #
     case "$x" in
         0|[1-9]*([0-9])) :            ;; # ok, do nothing
                       *) return -- -2 ;; # ng, string is not positive integer 
     esac
     case "$y" in
         0|[1-9]*([0-9])) :            ;; # ok, do nothing
                       *) return -- -2 ;; # ng, string is not positive integer 
     esac
 
     # Compare it
     #
     if [ ${#x} -gt ${#y} ]; then
         return 0
     elif [ ${#x} -eq ${#y} ]; then
         if [ $x -gt $y ]; then
             return 0
         else
             return 1
         fi
     else
         return 1
     fi
 }
 
 isgreater $1 $2
 case $? in
     0) echo $1 is greater than $2. ;;
     1) echo $1 is NOT greater than $2. ;;
     *) echo argument format error ;;
 esac
Note
-This is needed by very early stage of boot time, so only ksh built-ins can be used.
-This is ksh-specific code.
--------
- fMhvx5 Cool lol hey bla bla bla bla -- [[Jonny]] &new{2010-05-21 (金) 17:03:11};
- OegQlC Cool lol hey bla bla bla bla -- [[Jonny]] &new{2010-05-21 (金) 18:44:37};
- siNemQ Cool lol hey bla bla bla bla -- [[Jonny]] &new{2010-05-21 (金) 20:25:42};
- uUQGi6 Cool lol hey bla bla bla bla -- [[Jonny]] &new{2010-05-21 (金) 22:09:04};

#comment


Front page   Edit Diff History Attach Copy Rename Reload   New Page list Search Recent changes   Help   RSS of recent changes