Örnek
Önceki Biçimli İletiler Sonraki
Örnek
Burada bu kısımda bahsedilmiş olan fmtmsg ve addseverity işlevlerinin kullanımı örneklenmiştir. (Ç.N.: Parametre değerleri değişmez alanları göstermesi açısından Türkçe’ye çevrilmiştir.).
#include <fmtmsg.h>

int
main (void)
{
  addseverity (5, "BİLGİ-2");
  fmtmsg (MM_PRINT, "tek1alan", MM_INFO, "metin-2", "eylem-2", "etiket-2");
  fmtmsg (MM_PRINT, "UX:cat", 5, "sözdizimi geçersiz", "belgelere bakınız",
          "UX:cat:001");
  fmtmsg (MM_PRINT, "isim:foo", 6, "metin", "eylem", "etiket");
  return 0;
}
fmtmsg işlevinin ikinci çağrısı genelde bu işlevin ağırlıkla kullanıldığı System V sistemlerinde görülen kullanımını örneklemektedir. Bu sistemin System V üzerinde nasıl çalıştığına burada kısaca değinmek iyi olacaktır. isim alanındaki UX:cat, bir Unix uygulaması olan cat'in bir hata verdiğini belirtir. Devamında hatanın açıklaması ile eylem parametresi olarak "belgeye bakınız" değeri yer alır. Gerekiyorsa daha özel birşeyler yazılabilirdi. etiket alanı evvelce de bahsedildiği gibi isim parametresinin değerine ek olarak bir eşsiz kimlik (burada 001) dizgesinden oluşur. GNU ortamında bu dizge uygulamanın info belgesindeki bu konuya karşılık düşen düğümü içermeliydi.
MSGVERB ve SEV_LEVEL değişkenleri ayarlanmadan yazılım çalıştırılırsa aşağıdaki çıktı üretilir:
UX:cat: BİLGİ-2: sözdizimi geçersiz
TO FIX: belgelere bakınız UX:cat:001
Burada iletinin farklı alanlarının iki nokta üstüste ve TO FIX dizgesi ile birlikte nasıl basıldığını görüyoruz. Ama üç fmtmsg çağrısından yalnız biri bu çıktıyı üretti. İlk çağrı isim parametresi doğru biçimde olmadığından hiçbir çıktı üretmedi. Dizge iki nokta üstüste ile ayrılmış iki alan içermeliydi (Biçimli İletilerin Basılması). Üçüncü fmtmsg çağrısı da sayısal değeri 6 olan sınıf tanımlanmadığı için çıktı üretmedi. Sayısal değeri 5 olan bir sınıf ayrıca öntanımlı olarak tanımlanmadığı halde addseverity çağrısı ile tanımlanmış ve ikinci fmtmsg çağrısı yukarıdaki çıktıyı üretmiştir.
Uygulamamız çalışırken ortamı SEV_LEVEL=XXX,6,BİLGİ ile değiştirirsek aşağıdaki sonucu alırız:
UX:cat: BİLGİ-2: sözdizimi geçersiz
TO FIX: belgelere bakınız UX:cat:001
isim:foo: BİLGİ: metin
TO FIX: eylem etiket
Şimdi üçüncü fmtmsg çağrısı çıktı üretti. Böylece ortam değişkenindeki NOTE dizgesinin ileti içinde nasıl kullanıldığını görmüş olduk.
Şimdi sadece bize gerekli alanlarla bir çıktı üretelim. Eğer, MSGVERB ortam değişkenine severity:label:action (önem:isim:eylem) değerini atarsak aşağıdaki çıktıyı alırız:
UX:cat: BİLGİ-2
TO FIX: belgelere bakınız
isim:foo: BİLGİ
TO FIX: eylem
Böylece, I.e., fmtmsg işlevinin metin ve etiket parametreleri kullanılmamış oldu. Dikkat ederseniz BİLGİ ve BİLGİ-2 dizgelerinden sonra iki nokta üstüste kullanılmadı. Bu satırlarda bu dizgelerden sonra gösterilecek metin çıktılanmayacağından bu karakter kullanılmamıştır.
Önceki Üst Ana Başlık Sonraki
Önem Derecelerinin Eklenmesi Başlangıç XIII. Oylum - Düşük Seviyeli Girdi ve Çıktı
Bir Linux Kitaplığı Sayfası