Bu projenin amacı, bayt cinsinden boyutları olan ortak işlemleri kolaylaştıracak küçük bir kitaplık sağlamaktır. Birçok projenin bayt cinsinden boyutlarla çalışması gerekir (depolama alanı, bellek,...) ve hepsinin aşağıdaki gibi aynı sorunlarla uğraşması gerekir:
Verilen boyut için insan tarafından okunabilen bir dize nasıl elde edilir?
Önemli bilgilerin kaybolmaması için verilen boyut nasıl saklanır?
Boyutu bayt cinsinden saklarsak, verilen boyut MAXUINT64 değerini aşarsa ne olur?
Kullanıcılar tarafından girilen boyutlar yerel ayarlara ve yazım kurallarına göre nasıl yorumlanır?
Ondalık/ikili birimler (MB - MiB) belirsizliği ile nasıl başa çıkılır?
Bazı projelerde yukarıdaki tüm sorular/endişeler iyi bir şekilde ele alınmış, bazıları kısmen ele alınmış, bazıları umursamıyor. Bununla birlikte, her seferinde farklı bir dizi hata, davranış farklılıkları ve şu veya bu eksiklikle birden çok yerde uygulanmış (kısmi) çözümlere sahip olmak, zaman ve çaba kaybıdır. Bayt cinsinden boyutlarla ilgilenmesi gereken her proje tarafından kullanılabilecek genel olarak kullanılabilir bir çözüme ihtiyacımız var.
Amaç, mümkün olduğu kadar genel olarak kullanılabilir bir çözüm sağlamak olduğundan, uygulama küçük, hızlı ve diğer dillerden kolayca arayüzlenebilen bir dilde yazılmış olmalıdır. Mevcut bariz seçim, diğer diller için ince bağlamalara sahip C dilidir.
bscalc [-h] [--version] [-u {B,KiB,MiB,GiB,TiB,PiB,EiB,KB,MB,GB,TB,PB,EB}] [-b] [-k] [-m] [-g] [-t] [-p] [-e] [--KB] [--MB] [--GB] [--TB] [--PB] [--EB] [-H] EXPRESSION_PART [EXPRESSION_PART ...]bscalc [OPTIONS] EXPRESSION_PART [EXPRESSION_PART ...]
EXPRESSION_PART konumsal argümanlardır.
bu yardım mesajını göster ve çık
programın sürüm numarasını göster ve çık
Sonucun gösterileceği birim
Sonucu bayt cinsinden göster
Sonucu KiB'de göster
Sonucu MiB cinsinden göster
Sonucu GiB olarak göster
Sonucu TiB'de göster
Sonucu PiB'de göster
Sonucu EiB'de göster
Sonucu KB cinsinden göster
Sonucu MB olarak göster
Sonucu GB cinsinden göster
Sonucu TB cinsinden göster
Sonucu PB cinsinden göster
Sonucu EB olarak göster
Yalnızca tek bir "en iyi" sonucu göster
Sorunları https://github.com/storaged-project/libbytesize/issues adresinde bildirin
1. 1000000000000 baytı daha yüksek birimlere dönüştürün:
bscalc 1000000000000
Çıktı:
1000000000000 B
976562500.00 KiB
953674.32 MiB
931.32 GiB
0.91 TiB2. 1000000000000 baytı en uygun yüksek birime dönüştürün:
bscalc -H 1000000000000
Çıktı:
931.32 GiB