Hata kodu makroları errno. h başlık dosyasında tanımlıdır. Hepsi tamsayı sabitlerle sonuçlanır. Bu hata kodlarının GNU sisteminde oluşmayanları için yani GNU sistemi dışındaki sistemler için olanları GNU kütüphanesinde bulunmaktadır. int EPERM İşleme izin verilmedi; sadece dosyanın ya da süreçlerin sahibinin yapabileceği işlemler. int ENOENT Böyle bir dosya ya da dizin yok. Sistemde bulunacağı varsayılmış bir dosya ya da dizinin bulunamadığı durum. int ESRCH Belirtilen süreç kimliği ile eşleşen bir süreç yok. int EINTR İşlev çağrısı engellendi; herhangi bir anda çağrının tamamlanmasını engelleyen bir sinyalin oluştuğu durum. Bu durum oluştuğunda çağrıyı tekrarlamalısınız. EINTR ile başarısızlık dışında yakalanan tüm sinyaller için işlevlerin tekrar devreye girmesini sağlayabilirsiniz. Bkz. Sinyallerle Kesilen İlkeller. int EIO Giriş/Çıkış hatası; genellikle fiziksel okuma ve yazma hataları için kullanılır. int ENXIO Böyle bir adres ya da aygıt yok. Sistem bir dosya olarak belirttiğiniz bir aygıtı kullanmaya çalışır ve aygıtı bulamazsa bu hata oluşur. Bu hatayı alıyorsanız, ya aygıt dosyası doğru olarak oluşturulmamış veya fiziksel aygıt bulunamamış ya da makinaya doğru bağlanmamıştır. int E2BIG Argüman listesi çok uzun; exec işlevlerinden biri ile çalıştırılan yeni bir uygulama argümanlarla çağrıldığında çok fazla bellek alanı ayrılmaya çalışılırsa oluşur. GNU sistemlerinde bu durum asla oluşmaz. int ENOEXEC Çalıştırılabilir dosya biçimi geçersiz. Bu durum exec işlevleriyle saptanır. int EBADF Dosya tanımlayıcı hatalı; Örneğin dosya tanımlayıcının açılmamış olduğu ya da sadece yazmak için açılmış bir tanımlayıcıdan okuma yapıldığı gibi durumlarda oluşur. int ECHILD Hiç alt süreç yok. Alt süreçlerle çalışılması durumunda, üzerinde çalışılacak bir alt süreç yoksa oluşur. int EDEADLK Kısırdöngü önlendi. Bir sistem özkaynağının ayrılması sırasında bu özkaynağın başka bir özkaynağın varlığına bağlı olması ve o özkaynağında ayrılacak özkaynağa bağlı olması gibi bir durumda her iki özkaynağın bir diğerini beklemesi gibi bir durumdur. Sistem bu gibi durumlarda durumu bildirmeyi garanti etmez. Eğer bu hatayı almışsanız, sistem tam çökeceği sırada sizi uyarabilmiş ve size bir şans verebilmiş demektir... Örnekler için Dosya Kilitleri kısmına bakınız. int ENOMEM Yeterli bellek yok. Sistem kapasitesini doldurduğu için sanal bellek ayıramıyordur. int EACCES İzinler yetersiz; dosya izinlerinin yapılmaya çalışılan işlem için yetersiz olduğu durum. int EFAULT Hatalı adres; geçersiz bir göstericinin saptandığı durum. GNU sistemlerinde bu hatayı asla almazsınız, onun yerine bir sinyal alırsınız. int ENOTBLK Bir blok özellikli dosya gereken yerde verilen dosya uygun değilse oluşur. Örneğin, Unix sistemlerinde normal bir dosyayı bir dosya sistemi olarak sisteme bağlamaya çalışırsanız bu hatayı alırsınız. int EBUSY Aygıt ya da özkaynak meşgul; bir sistem kaynağının kullanımda olduğu için paylaşılamadığında oluşur. Örneğin, bir bağlı dosya sisteminin kökünü bir dosya olarak silmeye çalışırsanız bu hatayı alırsınız. int EEXIST Dosya var. Mevcut bir dosyanın yeni bir dosya olarak belirtildiği durum. int EXDEV Dosya sistemlerine uygunsuz bir bağ oluşturulmaya çalışıldığı saptandı. Bu durum sadece link kullanıldığında bir yandan da rename ile dosyanın ismi değiştirilmeye çalışıldığında oluşur. int ENODEV Belli bir sıraya uygun bir aygıtın verilmesi umulan bir işleve yanlış aygıt türü verildi. int ENOTDIR Bir dizin gerekliyken belirtilen dosya bir dizin değil. int EISDIR Dosya bir dizin; bir dizini yazmak için açamaz veya bir dizin belirten bir sabit bağı silemezsiniz. int EINVAL Geçersiz argüman. Bir kütüphane işlevi yanlış argümanla çağrıldığında oluşan çeşitli sorunlara dikkat çekmek için kullanılır. int EMFILE Mevcut süreç çok fazla dosya açmış ve daha fazlasını açamaz. Tanımlayıcıların tekrarlanması bu sınıra yaklaşılmasına sebep olur. BSD ve GNU sistemlerinde açık dosyaların sayısı gerektiğinde arttırılabilmesini sağlayan bir özkaynak sınırıyla denetlenir. Bu hatayı alırsanız ya RLIMIT_NOFILE sınırını arttırın ya da sınırsız yapın. Bkz. Özkaynak Kullanımın Sınırlanması. int ENFILE Sistemin bütününde çok fazla farklı dosya açılışı var. Bilgi: Birbirlerine bağlı kanallar tek bir dosya açılışı sayılır; bkz. İlintili Kanallar. Bu hata GNU sistemlerinde hiçbir zaman oluşmaz. int ENOTTY İlgisiz G/Ç denetimi işlemi. Örneğin, uçbirim kiplerinin normal bir dosya için kullanılmaya çalışılması. int ETXTBSY Çalışmakta olan bir dosyaya yazma denemesi ya da yazmak için açılmış bir dosyanın çalıştırılmasının denenmesi. Çoğunlukla bir hata ayıklama uygulaması ile çalışmakta olan bir yazılımın dosyasının yazmak için açılmaya çalışılması bu hatanın ortaya çıkmasına sebep olur. Sembolik sabitin ismi "text file busy" tümcesinden kısaltılmıştır. Bu hata GNU sistemlerinde oluşmaz çünkü gerekirse metin kopyalanır. int EFBIG Dosya çok büyük; dosyanın uzunluğunun sistemde mümkün olan dosya uzunluğundan büyük olduğu durum. int ENOSPC Aygıt üzerinde yer yok; disk doluyken üzerine bir dosyanın yazılmaya çalışılması durumu. int ESPIPE Konumlama işlemi geçersiz . int EROFS Salt okunur dosya sisteminde birşeyler değiştirilmeye çalışıldı. int EMLINK Çok fazla bağ var; tek bir dosyaya çok sayıda bağ varsa, dosyanın ismi bağlarla zaten değiştirilmişse ve rename ile dosyanın ismi değiştirilmeye çalışılırsa bu durum ortaya çıkabilir. Bkz. Dosya İsimlerinin Değiştirilmesi. int EPIPE Kırık boruhattı; bir boruhattının diğer ucunda okuyacak bir sürecin olmaması durumu. Her kütüphane işlevi bu hatayla dönebilir ve ayrıca bir SIGPIPE sinyali üretir. Bu sinyal yazılım tarafından yakalanmıyor ya da engellenmiyorsa yazılımı sonlandıracaktır. Bu yüzden eğer yazılımınız SIGPIPE sinyalini yakalamıyor ya da engellemiyorsa yazılımınız bu hatayı asla almayacak ama sonlanacaktır. int EDOM Sayısal argüman alan dışı; matematik işlevlerinde bir argüman işlev tarafından tanımlanmış alandan taşarsa bu hata oluşur. int ERANGE Kapsama hatası; matematik işlevleri tarafından kullanılır. Sonuç, olması gereken değer aralığının altında ya da üstünde ise bu hata oluşur. int EAGAIN Özkaynak geçici olarak kullanımdışı; daha sonra tekrar denerseniz çağrı çalışacaktır. EWOULDBLOCK makrosu ile aynıdır ve GNU C kütüphanesinde bu ikisi aynıdır. Bu hata bir kaç farklı durumda ortaya çıkabilir: Engellenmemesi öngörülmüş bir nesne üzerinde nesneyi engelleyecek bir işlem yürütülmeye çalışılırsa bu hata alınabilir. Bir işlemin tekrarlanması, bazı dış koşullar nesnenin okuma, yazma veya bağlanma için hazır hale gelmesini sağlayana dek engellenecektir. İşlemin mümkün olacağı zamanı select işlevini kullanarak bulabilirsiniz. Taşınabilirlik Bilgisi: Eski Unix sistemlerinin çoğunda, bu durum EWOULDBLOCK ile EAGAIN hatakodundan farklı bir durum olarak ele alınmıştır. Yazılımınızın taşınabilirliği açısından her iki hata koduna da bakmalı ve onları aynı olarak değerlendirmelisiniz. Bir geçici özkaynak yokluğu bir işlemi imkansız yapabilir. fork işlevi bu hatayı döndürebilir. Varlığı umulanın geçici olarak yokluğunu ifade eder. Bu durumda yazılımınız işlemi tekrarlayabilir ve işlemi gerçekleştirebilir. Şüphesiz tekrar denemeden önce bir kaç saniye beklemek ve az bulunan özkaynakları diğer süreçlerin serbest bırakmasına izin vermek daha iyidir. Bu tür kıtlık durumlarına sıkça rastlanır ve tüm sistemi etkiler. Böyle bir durumda etkileşimli bir yazılım kullanıcıya bilgi verip kendi komut döngüsüne geri dönmelidir. int EWOULDBLOCK GNU C kütüphanesinde bu hataEAGAIN ile aynıdır. Değerler bütün işletim sistemlerinde daima aynıdır. Eski Unix sistemlerinin çoğunda, C kütüphanelerinde EWOULDBLOCK, EAGAIN hata kodundan farklıdır. int EINPROGRESS Engellenmemesi öngörülmüş bir nesne üzerinde başlatılmış bir işlem tamamlanmadı. Daima bloklanması gereken bazı işlevler hiçbir zaman EAGAIN hatası vermez. Onun yerine, bir işlemin başlamış olduğunu ve tamamlanmasının biraz vakit alacağını belirten EINPROGRESS hatası döner. Çağrı tamamlanmadan önce nesneyi değiştirmeye çalışmak ise EALREADY hatasına yolaçar. Kuyruktaki işlemin ne zaman tamamlanacağını bulmak için selectişlevini kullanabilirsiniz. int EALREADY Engellenmemesi öngörülmüş bir nesne üzerindeki işlem hala sürüyor. int ENOTSOCK Bir soket gerektiği halde belirtilen dosya bir soket değil. int EMSGSIZE Bir sokete gönderilen iletinin uzunluğu desteklenenden fazla. int EPROTOTYPE İstenen protokol bu soket türünü desteklemiyor. int ENOPROTOOPT Belirttiğiniz soket seçeneği soket tarafından kullanılmakta olan protokol için uygun değil. Mr.

int EPROTONOSUPPORT Soket istenen iletişim protokolünü desteklemiyor . Bkz. Bir Soketin Oluşturulması. int ESOCKTNOSUPPORT Soket türü desteklenmiyor. int EOPNOTSUPP İstediğiniz işlem desteklenmiyor. Bazı soket işlevleri tüm soket türleri için uygun değildir ve bunlar tüm iletişim protokolleri için gerçekleştirilmemiş olabilirler. GNU sisteminde bir nesne istenen işlemi desteklemiyorsa birçok çağrı bu hatayı verebilir. Sunucunun bu çağrı için hiçbir şey yapamayacağı genel bir durumu belirtir. int EPFNOSUPPORT İstediğiniz soket iletişim protokolü ailesi desteklenmiyor. int EAFNOSUPPORT Bir soket için belirtilmiş adres ailesi desteklenmiyor; adres ailesinin soket üzerinde kullanılan protokolle bağdaşmadığını belirtir. Bkz. Soketler. int EADDRINUSE İstenen soket adresi kullanımda. int EADDRNOTAVAIL İstenen soket adresi kullanıma uygun değil; örneğin, yerel konak ismi ile eşleşmeyen bir soket ismi verilmeye çalışılması. Bkz. Soket Adresleri. int ENETDOWN Ağ çökük olduğundan soket işlemi başarısız oldu. int ENETUNREACH Uzak konağı içeren alt ağ erişilemez olduğundan soket işlemi başarısız oldu. int ENETRESET Uzak konak çöktüğünden ağ bağlantısı sıfırlandı. int ECONNABORTED Ağ bağlantısı yerel olarak sonlandırıldı. int ECONNRESET Ağ bağlantısı yerel konağın denetimi dışında kapandı. Örneğin, uzak makinanın yeniden başlatılıyor olması veya önlenemeyen bir protokol saldırısı bu hataya sebep olabilir. int ENOBUFS Çekirdeğin G/Ç tamponlarının hepsi kullanımda. GNU'da bu hata daima ENOMEM ile eşanlamlıdır. Ağ işlemlerinin birinden ya da diğerinden alabilirsiniz. int EISCONN Zaten bağlı olan bir sokete bağlanmayı denediniz. Bkz. Bir Bağlantının Oluşturulması. int ENOTCONN Soket hiçbir şeye bağlı değil. Veriyi hedefini belirtmeksizin bir soket üzerinden aktarmaya çalışırsanız bu hatayı alırsınız. Bağlantısız soketlerde bu hata yerine EDESTADDRREQ hatası alınır. int EDESTADDRREQ Sokete öntanımlı hedef adresi belirtilmemiş. Veriyi hedefini belirtmeksizin connect ile bir bağlantısız soket üzerinden aktarmaya çalışırsanız bu hatayı alırsınız. int ESHUTDOWN Soket zaten kapatılmış. int ETOOMANYREFS Çok fazla başvuru: uçlar birbirine bağlanamıyor int ETIMEDOUT Bir zamanaşımı belirtilmiş bir soket işlemine zamanaşımı süresinde bir yanıt gelmedi. int ECONNREFUSED Bir uzak konak ağ bağlantısına izin vermedi . int ELOOP Bir dosya ismine bakılırken çok seviyeli sembolik bağlar saptandı. Bu durum çoğunlukla kapalı bir çevrim oluşturan sembolik bağları belirtir. int ENAMETOOLONG Dosya ismi çok uzun veya konak ismi çok uzun . int EHOSTDOWN İstenen ağ bağlantısındaki uzak konak çökük. int EHOSTUNREACH İstenen ağ bağlantısındaki uzak konak erişilebilir değil. int ENOTEMPTY Dizin boş değil, işlem için dizin boş olmalı. Bu hata genelde boş olmayan bir dizini silmeye kalkınca oluşur. int EPROCLIM Bu hata, yeni bir süreç üzerinde kullanıcı başına sınır fork ile aşıldığında oluşur. RLIMIT_NPROC sınırı hakkında daha ayrıntılı bilgiyi Özkaynak Kullanımın Sınırlanması bölümünde bulabilirsiniz. int EUSERS Çok fazla kullanıcı olduğundan dosya kotası sistemi bozuldu. int EDQUOT Kullanıcının disk kotası aşıldı. int ESTALE Eskimiş NFS dosya kaydı. Sunucu konak üzerindeki dosya sisteminin yeniden düzenlenmesi nedeniyle NFS sisteminin iç bozulmasını belirtir. Bu bozulmanın giderilmesi için yerel konak üzerinde NFS dosya sisteminin önce ayrılıp sonra tekrar bağlanması gerekir. int EREMOTE Bir uzak dosya sistemi zaten kullanımda olan NFS bağlama dosyası ismi ile sisteme bağlanmaya çalışıldı. int EBADRPC RPC yapısı hatalı int ERPCMISMATCH RPC sürümü yanlış int EPROGUNAVAIL RPC uygulaması kullanılabilir değil int EPROGMISMATCH RPC uygulaması sürümü yanlış int EPROCUNAVAIL RPC, uygulama için hatalı yordam yürüttü int ENOLCK Kullanılabilir bir kilit yok. Bu hata dosya kilitleme oluşumları tarafından kullanılır. Bilgi için Dosya Kilitleri bölümüne bakınız. Bu hata GNU sistemlerinde hiçbir zaman üretilmez, ancak NFS sunucusunun çalıştığı başka bir işletim işletim sistemindeki bir işlemden kaynaklanabilir. int EFTYPE İlgisiz dosya türü ya da biçimi. Dosya işlem için yanlış türdendir ya da bir veri dosyası yanlış biçimlidir. Bazı sistemlerde, chmod ile bir dizin olmayan dosyaya yapışkan bit belirtilmeye çalışılırsa bu hata oluşur. Bkz. Dosya İzinlerinin Atanması. int EAUTH Kimlik kanıtlama hatası. int ENEEDAUTH Kimlik kanıtlayıcı gerekli int ENOSYS İşlev henüz gerçeklenmedi. Bu hata çağrılan işlevin C kütüphanesinde ya da işletim sisteminde henüz mevcut olmadığını belirtir. Bu hatayı alıyorsanız, C kütüphanesinin ya da işletim sisteminin yeni bir sürümünü sisteminize kurmadığınız sürece aynı işlev için bu hatayı almaya devam edeceksiniz demektir. int ENOTSUP Desteklenmiyor. Bir işlev bu hatayı döndürüyorsa, ona verilen bir parametrenin geçerli olduğunu ancak istenen işlevselliğin bulunmadığı anlaşılır. İşlevin henüz bir komutu, bir seçeneği ya da bir bayrak bitini gerçekleştirmediği anlamına gelebilir. Bir işleve bir parametre içinde verilen bazı nesneler, örneğin bir dosya tanıtıcısı ya da port, verilen diğer parametrelerle desteği sağlayamadığı anlamına da gelebilir. Farklı bir dosya tanıtıcısı ya da farklı bir parametre değerleri aralığı ile destek sağlanmış olabilir. İşlevin tamamı gerçeklenmemişse bu hata değil ENOSYS döner. int EILSEQ Bir çokbaytlı karakter çözümlemesinde, işlev bir geçersizlik saptadı ya da bayt sırası tamamlanmamış veya verilen geniş karakter geçersiz. int EBACKGROUND GNU sisteminde, term protokolünü destekleyen sunucular, çağrıcı uçbrimin önalan işlem grubunda değilse bazı işlemler için bu hatayı döndürebilir. Aslında kullanıcılar bu hatayı görmezler. Çünkü örneğin read ve write gibi işlevler hatayı SIGTTIN eya SIGTTOU sinyaline dönüştürürler. İşlem grupları ve bu sinyaller hakkında daha fazla bilgi edinmek için İş Denetimi bölümüne bakınız. int EDIED GNU sisteminde, açılan bir dosya bir uygulama tarafından dönüştürüldüğünde veya çevirici uygulama dosyaya bağlanmadan önce başlatılırken ölürse bu hata oluşur. int ED Deneyimli kullanıcı neyi yanlış yaptığını bilir. int EGREGIOUS Ne yaptınız? int EIEIO Evine dön ve sütünü iç. int EGRATUITOUS Bu hata kodunun bir kullanım amacı yok. int EBADMSG Hatalı ileti int EIDRM Belirteç kaldırıldı int EMULTIHOP Çoklu sıçrama denendi int ENODATA Kullanılabilir veri yok int ENOLINK Bağ kopmuştu int ENOMSG İstenen türde ileti yok int ENOSR Akımdışı özkaynaklar int ENOSTR Aygıt bir akım değil int EOVERFLOW Tanımlı veri türü için değer çok büyük int EPROTO Protokol hatası int ETIME Zamanlayıcı zamanaşımına uğradı int ECANCELED İşlem iptal edildi. Bir işlem daha tamamlanmadan herhangi bir anda iptal edilmiş. Bkz. Eşzamansız G/Ç. aio_cancel işlevini çağırdığınızda normal sonuç olarak işlemin tamamlanması bu hata ile etkilenir. Bkz. Eşzamansız G/Ç İşlemlerinin İptal Edilmesi. Aşağıdaki hata kodları Linux/i386 çekirdeğinde tanımlıdır ve henüz belgelendirilmemiştir. int ERESTART Engellenen sistem çağrısı yeniden başlatılmalı int ECHRNG Kanal numarası aralık dışında int EL2NSYNC 2. seviye eşzamanlı değil int EL3HLT 3. seviye kapandı int EL3RST 3. seviye sıfırlandı int ELNRNG Bağ numarası aralık dışında int EUNATCH Protokol sürücüsü bağlı değil int ENOCSI Kullanılabilir bir CSI yapısı yok int EL2HLT 2. seviye kapandı int EBADE Geçersiz değişim int EBADR İstek tanımlayıcı hatalı int EXFULL Değişim kotası doldu int ENOANO Anot yok int EBADRQC İstek kodu geçersiz int EBADSLT Yuva geçersiz int EDEADLOCK Dosya kilitlemede kısırdöngü hatası int EBFONT Yazıtipi dosyasının biçimi hatalı int ENONET Makina ağ üzerinde değil int ENOPKG Paket kurulu değil int EADV Dikkat çekme hatası int ESRMNT Srmount hatası int ECOMM Gönderme sırasında iletişim hatası int EDOTDOT RFS'e özgü hata int ENOTUNIQ İsim ağ üzerinde eşsiz değil int EBADFD Dosya tanımlayıcı hatalı durumda int EREMCHG Uzak adres değişti int ELIBACC Gerekli bir paylaşımlı kütüphaneye erişilemiyor int ELIBBAD Bozulmuş bir paylaşımlı kütüphaneye erişim int ELIBSCN a. out içindeki. lib bölümü bozulmuş int ELIBMAX Çok fazla paylaşımlı kütüphane ilintilenmeye çalışılıyor int ELIBEXEC Bir paylaşımlı kütüphane doğrudan çalıştırılamaz int ESTRPIPE Akımlarda boruhattı hatası int EUCLEAN Yapı temizlik gerektiriyor int ENOTNAM İsimli türde bir XENIX dosyası değil int ENAVAIL Kullanılabilir bir XENIX semaforu yok int EISNAM Bir isimli dosya mı int EREMOTEIO Uzak G/Ç hatası int ENOMEDIUM Ortam bulunamadı int EMEDIUMTYPE Ortam türü yanlış Mr.666