GNU / Linux'ta iki mod her zaman aynı sonucu verir
Evet, açıkça. Gönderen man md5sum
:
Not: [sic] GNU sisteminde ikili ve metin modu seçeneği arasında fark yoktur.
Bu md5sum
GNU coreutils 8.21 ile birlikte gelen uygulamadan; Daha eski bir sürümün (8.12) bu bildirimi olmadığını fark ettim ama yine de aynı olacağını düşünüyorum.
AFAICT md5sum
resmi olarak standartlaştırılmamış olmasına rağmen (örn. POSIX tarafından), çeşitli uygulamalarda çeşitli platformlarda mevcuttur ve bunların, sistemler arasında kullanım kolaylığı için birbirleriyle uyumlu hale getirilmesi için açık bir çaba vardır.
Bununla ilgili olarak, ISO / ANSI C Standardı dosyalara erişmek için yüksek seviye akış işlevleri içerir. Standardın bir parçası olarak, bunlar ISO C'yi paylaşılan bir kütüphane veya derleyici aracılığıyla uygulayan tüm işletim sistemlerinde bulunur. Hemen hemen tüm işletim sistemleri buna sahip olduğundan (ve çoğu zaman C dilinde yazıldığından), potansiyel olarak çok taşınabilir yazılımları uygulamak için kullanılan bir tür evrensel dildir.
Ne yaptığı göz önüne alındığında md5sum
, herhangi bir işletim sisteminde derlenecek ve üzerinde çalışacak bir yazı yazmak tamamen mümkün olacaktır. Bunun GNU coreutils sürümü için geçerli olduğunu iddia etmiyorum, ancak daha önce belirtilen yüksek düzeyli dosya akışı işlevlerinden biri fopen()
, b
ikili olarak açıldığını belirtmek için bir dosyayı açarken kullanılan bir anahtarı dahil etmek için ISO C tarafından zorunlu kılınan dosya". Anlamına veya sistemin gerektirebilir ne değildir standardın öngördüğü, sadece bazı (olabilir nerede sistemde kullanılabilecek şekilde mevcut erişmek için gerekli olan herhangi bunun için) sebep.
Linux / POSIX / * nix tarzı işletim sistemlerinde böyle bir neden yoktur, bu yüzden anahtar hiçbir şey yapmaz. Fopen () için POSIX spesifikasyonundan (ISO C'nin bir üst kümesi ) :
'B' karakterinin hiçbir etkisi olmayacaktır, ancak ISO C standart uyumu için izin verilir.
Bu nedenle, tamamen taşınabilir bir md5sum
uygulama ISO yüksek düzey dosya akışı işlevlerini kullanabilir, çünkü ISO C'deki dosyalara erişmek için başka yöntem yoktur (POSIX şikayetleri olanlar dahil çoğu platformun kendi alt düzey yöntemleri de vardır, ancak bunları kullanmak taşınabilir değildir, çünkü ISO C'de değildirler) ve ayrıca dosyayı okurken seçeneği eklemek veya eklememek için -b
ve -t
işaretlerini de uygulamalıdır . Bunun anlamsız olduğu sistemlerde hiçbir fark yaratmaz.b
fopen()
Yine, GNU'nun md5sum'unun tamamen taşınabilir bir şekilde yazıldığını veya birinden türetildiğini söylemiyorum, ama açıkçası, çalışabilirliğine, biriyle uymaya çalışıyor. Hiçbir şey yapmayan bir bayrağa sahip olmanın bayrağa sahip olmakla aynı olmadığını unutmayın - eski durumda, iyi olduğu belirtilir, ancak hiçbir şey yapmaz, ancak daha sonraki durumda kullanmak bir hata olabilir veya tanımlanmamış davranışa yol açabilir .