Путь: Toys/Other, команды версии: Ver.4 Ver.9 free Комментарии в файле free.c :
Исходный текст в файле free.c #define FOR_free #include "toys.h" GLOBALS( unsigned bits; unsigned long long units; char *buf; ) static char *convert(unsigned long d) { long long ll = d*TT.units; char *s = TT.buf; if (FLAG(h)) human_readable(s, ll, 0); else sprintf(s, "%llu",ll>>TT.bits); TT.buf += strlen(TT.buf)+1; return s; } void free_main(void) { struct sysinfo in; sysinfo(&in); TT.units = in.mem_unit ? in.mem_unit : 1; while ((toys.optflags&(FLAG_h-1)) && !(toys.optflags&(1<<TT.bits))) TT.bits++; TT.bits *= 10; TT.buf = toybuf; xprintf("\t\ttotal used free shared buffers\n" "Mem:%17s%12s%12s%12s%12s\n-/+ buffers/cache:%15s%12s\n" "Swap:%16s%12s%12s\n", convert(in.totalram), convert(in.totalram-in.freeram), convert(in.freeram), convert(in.sharedram), convert(in.bufferram), convert(in.totalram - in.freeram - in.bufferram), convert(in.freeram + in.bufferram), convert(in.totalswap), convert(in.totalswap - in.freeswap), convert(in.freeswap)); } |