Evet, eşdeğerdir, ancak açıkçası yalnızca mknod
aslında bir FIFO oluşturduğunuzu söylerseniz , bir blok veya karakter aygıtı değil (bu günlerde nadiren devtmpfs / udev sizin için yapar).
mkfifo foobar
# same difference
mknod foobar p
Her strace
iki komut için de aynıdır:
mknod("foobar", S_IFIFO|0666) = 0
Yani, sistemler açısından mkfifo
, aslında kısacası mknod
.
Öyleyse en büyük fark anlambilimdir. İle mkfifo
size tek seferde FIFOların bir demet oluşturabilir:
mkfifo a b c
İle mknod
Eğer türünü belirtmek zorunda çünkü, bu sadece hiç bir argüman kabul eder:
# wrong:
$ mknod a b c p
mknod: invalid major device number ‘c’
# right:
mknod a p
mknod b p
mknod c p
Genel olarak, mknod
doğru kullanmak zor olabilir. Bu yüzden FIFO ile çalışmak istiyorsanız, buna bağlı kalın mkfifo
.
mkfifo(2)
gerçekten ayrı bir sistem çağrısı yapıldığına dikkat edinmknod(2)
(ancak bununla aynı şeyi yapacaktırmknod(S_FIFO)
).