| 69 |
|
char *size_conv(long long number){ |
| 70 |
|
char type[] = {'B', 'K', 'M', 'G', 'T'}; |
| 71 |
|
int x=0; |
| 72 |
+ |
int sign=1; |
| 73 |
|
static char string[10]; |
| 74 |
|
|
| 75 |
+ |
if(number < 0){ |
| 76 |
+ |
sign=-1; |
| 77 |
+ |
number=-number; |
| 78 |
+ |
} |
| 79 |
+ |
|
| 80 |
|
for(;x<5;x++){ |
| 81 |
|
if( (number/1024) < (100)) { |
| 82 |
|
break; |
| 84 |
|
number = (number/1024); |
| 85 |
|
} |
| 86 |
|
|
| 87 |
< |
snprintf(string, 10, "%lld%c", number, type[x]); |
| 87 |
> |
number = number*sign; |
| 88 |
> |
|
| 89 |
> |
snprintf(string, 10, "%lld%c", number, type[x]); |
| 90 |
|
return string; |
| 91 |
|
|
| 92 |
|
} |
| 335 |
|
r=0; |
| 336 |
|
w=0; |
| 337 |
|
for(counter=0;counter<stats.disk_io_entries;counter++){ |
| 338 |
+ |
char name[12]; |
| 339 |
+ |
strncpy(name, disk_io_stat_ptr->disk_name, sizeof(name)); |
| 340 |
+ |
name[sizeof(name)-1] = '\0'; /* strncpy doesn't terminate longer strings */ |
| 341 |
|
move(line, 0); |
| 342 |
< |
printw("%s", disk_io_stat_ptr->disk_name); |
| 342 |
> |
printw("%s", name); |
| 343 |
|
move(line, 12); |
| 344 |
|
rt = (disk_io_stat_ptr->systime)? (disk_io_stat_ptr->read_bytes/disk_io_stat_ptr->systime): disk_io_stat_ptr->read_bytes; |
| 345 |
|
printw("%7s", size_conv(rt)); |
| 365 |
|
/* Network */ |
| 366 |
|
network_stat_ptr = stats.network_io_stats; |
| 367 |
|
for(counter=0;counter<stats.network_io_entries;counter++){ |
| 368 |
+ |
char name[20]; |
| 369 |
+ |
strncpy(name, network_stat_ptr->interface_name, sizeof(name)); |
| 370 |
+ |
name[sizeof(name)-1] = '\0'; /* strncpy doesn't terminate longer strings */ |
| 371 |
|
move(line, 42); |
| 372 |
< |
printw("%s", network_stat_ptr->interface_name); |
| 372 |
> |
printw("%s", name); |
| 373 |
|
move(line, 62); |
| 374 |
|
rt = (network_stat_ptr->systime)? (network_stat_ptr->rx / network_stat_ptr->systime): network_stat_ptr->rx; |
| 375 |
|
printw("%7s", size_conv(rt)); |
| 386 |
|
/* Disk */ |
| 387 |
|
disk_stat_ptr = stats.fs_stats; |
| 388 |
|
for(counter=0;counter<stats.fs_entries;counter++){ |
| 389 |
+ |
char name[20]; |
| 390 |
+ |
strncpy(name, disk_stat_ptr->mnt_point, sizeof(name)); |
| 391 |
+ |
name[sizeof(name)-1] = '\0'; /* strncpy doesn't terminate longer strings */ |
| 392 |
|
move(line, 42); |
| 393 |
< |
printw("%s", disk_stat_ptr->mnt_point); |
| 393 |
> |
printw("%s", name); |
| 394 |
|
move(line, 62); |
| 395 |
|
printw("%7s", size_conv(disk_stat_ptr->avail)); |
| 396 |
|
move(line, 73); |
| 403 |
|
refresh(); |
| 404 |
|
} |
| 405 |
|
|
| 406 |
< |
void sig_winch_handler(int sig){ |
| 406 |
> |
void sig_winch_handler(int dummy){ |
| 407 |
|
clear(); |
| 408 |
|
display_headings(); |
| 409 |
|
display_data(); |