Make size in stat.h be a uint64
Supporting print long using %l (a bit of cheat) Modify ls to print size using %l We should probably update size in inode too.
This commit is contained in:
		
							parent
							
								
									6bfb078b14
								
							
						
					
					
						commit
						fab5e7c1de
					
				
					 3 changed files with 5 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -3,9 +3,9 @@
 | 
			
		|||
#define T_DEVICE  3   // Device
 | 
			
		||||
 | 
			
		||||
struct stat {
 | 
			
		||||
  short type;  // Type of file
 | 
			
		||||
  int dev;     // File system's disk device
 | 
			
		||||
  uint ino;    // Inode number
 | 
			
		||||
  short type;  // Type of file
 | 
			
		||||
  short nlink; // Number of links to file
 | 
			
		||||
  uint size;   // Size of file in bytes
 | 
			
		||||
  uint64 size; // Size of file in bytes
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,7 +43,7 @@ ls(char *path)
 | 
			
		|||
 | 
			
		||||
  switch(st.type){
 | 
			
		||||
  case T_FILE:
 | 
			
		||||
    printf(1, "%s %d %d %d\n", fmtname(path), st.type, st.ino, st.size);
 | 
			
		||||
    printf(1, "%s %d %d %l\n", fmtname(path), st.type, st.ino, st.size);
 | 
			
		||||
    break;
 | 
			
		||||
 | 
			
		||||
  case T_DIR:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -68,6 +68,8 @@ printf(int fd, const char *fmt, ...)
 | 
			
		|||
    } else if(state == '%'){
 | 
			
		||||
      if(c == 'd'){
 | 
			
		||||
        printint(fd, va_arg(ap, int), 10, 1);
 | 
			
		||||
      } else if(c == 'l') {
 | 
			
		||||
        printint(fd, va_arg(ap, uint64), 10, 0);
 | 
			
		||||
      } else if(c == 'x') {
 | 
			
		||||
        printint(fd, va_arg(ap, int), 16, 0);
 | 
			
		||||
      } else if(c == 'p') {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue