Merhaba, tekrar hoş geldiniz.
Bu konferansta şu konulardan bahsetmek istiyorum c standart kütüphanesi tarafından
sağlanan bazı yardımcı fonksiyonlar.
Ve bunlar tam olarak senin yaptığın şeyi yapıyor. sadece bazı yardımcı
programlar, bazı genel genel işlevler çeşitli farklı şeyler yapmak için.
Fayda fonksiyonlarını kullanmak için, genellikle standart lib'dedirler. h.
Yani bu başlık dosyasını dahil edersiniz.
Gideceğim bazı fonksiyonlar sadece yararlı işlevleri tanımlamak için.
Birincisi mutlak değer abs'dir.
Mutlak değeri döndürür bir argümanın değeri.
Mutlak değer olumluya çevirmek.
Yani olumsuz bir pas atarsanız ya da benzerleri, size pozitif
değeri döndürecektir.
Çıkış adında bir fonksiyon var.
Bunu biraz kullandım ana fonksiyonumuzda.
Bir tamsayı alacaktır, genellikle bir dönüş değeri ve genellikle
negatif bir sayı bir hata olduğu anlamına gelir pozitif bir sayı veya sıfır hata yok veya
bir hata yok anlamına gelir.
Bu sonlandıracaktır program olsa da.
Hemen ortaya çıkacaktır.
Eğer bir ana fonksiyon içindeyseniz, bir geri dönüş yaparsanız, ana
işlevden geri dönebilirsiniz.
Ancak çıkış genellikle programı kapatmak için.
Bazı sabitler de vardır aşağıdaki durumlarda kullanabileceğiniz çıkış
başarısı ve çıkış hatası gibi tanımlanmış sayıları kullanmak istemezsiniz.
Diğer ilgili rutinler Çıkışta başvurmak isteyebileceğiniz
kütüphane önemlidir.
Ve bunu oldukça uzun bir süre içinde göreceksiniz. bit c programı, özellikle abort.
İptal, bir şey olduğunda malloc yapamıyorsanız, abort'u çağırabilirsiniz
gibi bir tür hata, ve sinyale ayarlayabilirsiniz.
İptal ile ilgili iyi şey sinyale bağlı olarak bir
çekirdek dosyası oluşturacaktır.
Çekirdek dosyaya şu konularda yardımcı olunabilir daha fazla bilgi için debug.
Ancak abort ve atexit'ten çok Genellikle ölümcül bir hata aldığınızda çağrılan
yararlı işlevler.
Bir ortam var işlevi, ortam değişkenlerini okumanızı
sağlayacaktır.
Ortam değişkenleri genellikle ortamınızla ilişkilendirilir.
Onlar sizin için bir değişken. kullanabileceğiniz
bir tür global değişken gibidir. işletim sisteminin herhangi bir yerinde.
Yani eğer Linux ise, bir yolunuz için ortam değişkeni.
İçinde ortam değişkenleri var yolları veya farklı programların bulunduğu yerleri
belirtmek için pencereler veya sadece genel global değişkenler.
Bir ortam değişkeni ayarlayabilirsiniz ve daha sonra bu get environment fonksiyonunu
kullanarak okuyabilirsiniz.
Ve bunun içinde şöyle yazacak ortam değişkenini kullanarak programınızda
kullanabilirsiniz.
Yani yine, yol gibi şeyler kabuğunuzla ilgili veya ortamınızla
ilgili olan.
Çevre edinmek çok faydalıdır.
Bir qsort fonksiyonu var.
Bu, veri dizisini sıralayacaktır void işaretçi dizisi tarafından işaret edilir.
Yani bir dizi var ilk parametre olarak alınır
ve sıralanır.
İçinde n tane eleman olacak dizisi, her boyut uzunlukta ısırır.
Ve n ve boyut t tipi boyutundadır.
Yani dört değişken var bu işleve gider.
Ama qsort güzel çünkü bir diziyi sıralayabilirsiniz.
Dördüncü argüman bir Sıralama için kullanmak istediğiniz
fonksiyona işaretçi.
Bu yüzden daha karmaşık hale gelebilir.
Ancak bu işlev çok Bir dizideki iki öğeyi karşılaştırmanız gerektiğinde
kullanışlıdır.
İşaretçileri iletebilirsiniz ile karşılaştırmak istediğiniz
öğeleri seçin.
Rastgele bir fonksiyonumuz var.
Bunu aşağıdakilerden birinde kullanıyoruz Zorluklarımız Rand.
Bu rastgele bir sayı üretecektir.
İsterseniz bir tohum belirtebilirsiniz arasında
rastgele bir sayı üretecektir. minimum değer 3276 ve minimum değer sıfır
rastgele, maksimum değer 3276.
Yani, rand max standart lib'de tanımlanmıştır. h.
Bunu genellikle sran ile kullanırsınız işlevi, bir tohum sağlar.
Bir tohum belirli bir aralık sağlayabilir.
Bu rakamları belki daha rastgele de olabilir.
Bu yüzden rastgele sayı tohumlar üretecini işaretsiz bir int türüne dönüştürür.
Sistem, aşağıdakileri yapabileceğiniz bir fonksiyondur sistem çağrılarını çalıştırmak için invoke.
Sınıfta bir duraklama yapmak için kullandım.
Ama bir şey çalıştırabilirsiniz Konsol, dizinleri değiştirmek, izinleri
değiştirmek gibi Linux, diğer programları çalıştırmak, tüm bunları sistem üzerinden
yapabilirsiniz.
Ve böylece bu aslında kabuğunuzda bir komut çalıştırın, bu ister
dos istemi ister Linux'ta bir kabuk kullanıyorsunuz.
Bu komutu çalıştıracaktır.
Yani örneğin şunları yapabilirsiniz sistem make dir ve belirttiğiniz
dizini oluşturacaktır dir yapmak için argümanda.
Hepsi içeride çift tırnak, bu yüzden bir dize alır.
Sistem de çok ama çok kullanışlı.
Assert kütüphanesi hata ayıklama için kullanışlıdır.
Konuşma fırsatımız olmadı. ama kısaca bahsetmek
istedim.
İddia edilen bir kütüphane. h ve hata ayıklamaya yardımcı olacak bir şey.
Yani iddia bir şeyin doğru olduğunu söylüyor.
Yani içine bir iddia koyabilirsin önce bir şeyin doğru olduğundan emin olmak
için kodunuzu bir sonraki kod satırına geçin.
Şöyle bir assert makrosu var kullanacaksınız ve bir iç ifade
gibi bir argüman alır.
İfade şu şekilde değerlendirilirse false ise, assert makrosu standart hataya
bir hata mesajı yazar akışını ve abort işlevini çağırır.
Yani programcınız sonlandırıyor.
Yani bir şey koyabilirsin Kodunuzda temel olarak
şöyle bir şey yazıyor.
z'nin şuna eşit olduğunu söyleyebilirsiniz x çarpı x eksi x çarpı y.
Ve sonra şunu iddia edebilirsiniz: z sıfıra eşit veya sıfırdan büyüktür.
Eğer bu yanlış dönerse, sizin program çıkacaktır.
Aksi takdirde, aşağıdaki işlemleri gerçekleştirecektir bir sonraki kod satırı.
Yani bu gerçek bir kodunuz boyunca varsayımlar.
Şundan emin olmak istersiniz Bir sonrakine geçmeden önce belirli değerlerin
ne olduğunu bilmelisiniz.
Bu, esasen aşağıdakilerin yapıldığından emin olmaktır orada sıfıra bölmek gibi bir şey yapmıyorsunuz,
sıfır değeriniz yok Bu çarpma işlemini yaptığınızda.
İçeride sık sık iddia görürsünüz hata ayıklama için c programlarının.
Diğer yararlı başlık dosyaları bakmak isteyebilirsiniz: zaman. h.
Zaman. her türlü farklı Farklı tarih ve saatleri desteklemek
için işlevler ve makrolar.
Genellikle, bir zaman t yapısı döndürür.
Ama tarihi alabilirsin.
Saati bulabilirsin.
Errno. h veya hata numarası. h.
Bu, aşağıdakiler için makroları tanımlar hataların raporlanması.
Genellikle, yine, aşağıdakiler için kullanılır daha iyi hata ayıklama ve belirli
hataları raporlama.
Yani birçok fonksiyon standart kütüphanelerde kullanın.
Başarısız olurlarsa, bir sayı döndürebilirler Belirli bir hata için ve bazı soketleri kullandığınızda daha
önemlidir diğer işlevleri yerine getirir çünkü birçok
farklı hata olabilir.
Bazen bilmek yararlı olabilir sadece
bir hata olduğunu söylemek yerine neler olup bittiğini Belirli bir hata
türünü söylemek çok yararlıdır.
Böylece hata numaralarını alabilirsiniz daha fazla hata ayıklamaya yardımcı olmak
için bunu kullanarak.
Yerel. h.
Bir sürü fonksiyon var ve farklı biçimlendirmeler
için bu başlıktaki makrolar para birimleri ve parasal birimler.
Sinyal. h.
Bu genellikle aşağıdakiler için kullanışlıdır program sonlandırması için farklı
sinyaller üretir.
Sinyaller bizim ele aldığımız bir konu değil çok fazla ayrıntıya girmez,
ancak abort'u belirtirken çağırdığınızda bu yararlı olabilir Program çöktüğünde veya program sonlandırıldığında
belirli sinyaller.
Ve bunları aşağıdaki durumlarda kullanabilirsiniz sinyallerini anlamak için bunları çekirdek
dosyanızda da kullanabilirsiniz.
Stdarg. h.
Bu, aşağıdaki farklı tesisleri tanımlar bir fonksiyona değişken
sayıda argüman aktarılmasını sağlar, varargs.
Vargs ve printf kullanıyoruz, ancak kendi arg fonksiyonlarımızı yaratabiliriz.
Bu daha ileri bir konu.
Ancak bunlar temel başlık dosyalarıdır zamanları, hata numaralarını ve benzerlerini almak
için yararlı bulabileceğiniz.
Bunlar iyi fayda fonksiyonlarıdır.
Umarım bu yardımcı olmuştur.
Teşekkür ederim.