CANBULA Bilim Bilişim Günlüğü

18Ara/110

Komutların Çıktı Vermemesini Sağlamak

Aslında böyle bir şeye çok fazla kişinin ihtiyacı olacağını sanmıyorum ama yine de özel bir durum olduğu için burada paylaşmak faydalı olabilir. Sorunumu şöyle özetleyebilirim, bir takım hesaplamalar yapıp ekrana format kullanarak sabit sütunlarda veriler yazdıran bir fortran kodu kullanıyorum ve belirli aralıklarla yine fortran kodumun için gnuplot'u çağırarak çeşitli grafikler çizdiriyorum. Eksenlerin üzerine bazı etiketler koymak istiyorum ancak otomatik olarak ayarlanan eksen aralığının dışına bir etiket denk gelirse gnuplot doğal olarak bir hata mesajı döndürüyor ve doğal olarak bu mesaj benim çıktımı bozuyor. Dolayısıyla yazının devamında anlatacaklarımla bu hata mesajının ekranda görünmemesini sağlayacağım.Öncelikle fortran kodumun içinde bir gnuplot dosyası oluşturuyorum ve gnuplot'u system subroutine'i yardımıyla çağırıyorum.

Selec All Code:
1
call system("gnuplot "//mygpfile)

Bu komut yardımıyla mygpfile karakter değişkenime adını kaydettiğim dosyanın içindeki komutlar gnuplot tarafından çalıştırılacak ama çıktı olursa ekrana yazılacak. Ekrana yazılmaması için ise çıktıyı başka bir yere yönlendirmem gerekiyor ancak sadece stdout yani çıktıyı yönlendirmek yetmez aynı zamanda strerr yani hata çıktısını da yönlendirmek gerekir, dolayısıyla aşağıdaki kodu kullanıyorum.

Selec All Code:
1
call system("gnuplot "//mygpfile//" > /dev/null 2>&1")

Komut hem stdout hem de stderr çıktılarının ekranda gösterilmeden /dev/null'a kaydedilmesini sağlar.

Bu yazıyı beğendiniz mi?

RSS Kaynağımıza abone olun!

Yorumlar (0) Geri izlemeler (0)

Yorum yapılmadı.


Leave a comment

(required)

Geri izleme yok.