2010-03-03 22 views
8

Bir işlev verildiğinde, atoi diyelim, eğer bu işlevi kullanmak istersem eklenecek başlık dosyasını nasıl bulabilirim? Bu konu için her zaman şaşırıyorum. Eğer linux api gibi "atoi" gibi bir işlevi kullanmama izin verirse, sorumu başka bir şekilde şöyle yazabilirim: Linux için bir belge mi?linux kütüphane işlevi için eklenecek başlık dosyasının nasıl bulunacağı

+2

bakın adam veya bilgi ve yerinde size kullanmak manpage bölümünü verir yerinde . –

cevap

12

Man pages. Komut isteminde man atoi (veya genel olarak man <function>) yazın. Kullanım bilgilerinin yanı sıra hangi başlıkların ekleneceğini gösteren bir liste verecektir. Man sayfaları da programları ve komutları (bul, grep, cd, vb.) Belgelemektedir. Bazen, bir programın C işleviyle aynı isme sahip olduğu bir durumda (örneğin, yazma) çalışabilirsiniz. Bu durumda, kılavuzun doğru bölümüne, sistem çağrıları için bölüm 2'ye ve kütüphane işlevleri için bölüm 3'e bakmaya yönlendirmeniz gerekir. Bunu, bölüm numarası "man" ve komut adı: man 2 write arasına ekleyerek yaparsınız. Belirli bir işlevin sistem çağrısı mı yoksa kitaplık işlevi mi olduğunu bilmiyorsanız, ikisini de deneyin.

El ile sayfalar hakkında daha fazla bilgiyi man man yazarak öğrenebilirsiniz.

+2

+1 Not: bazı platformlarda bu paketleri yüklemeniz gerekir (ör.ubuntu 'manpages-posix-dev' (üstbilgiler) ve 'manpages-dev' için (işlevler)) – ChristopheD

1
Linux için bir belge midir?

Kesinlikle. Dokümantasyon man sayfaları olarak mevcuttur. Bir terminalde man <function> yazın ve keyfini çıkarın. Eklemek istediğiniz hangi başlık dosyası genellikle en üstte gösterilir.

1

Eğer ctags ve vim editörü kullanıyorsanız ve/usr/include taraması için ctags ayarladıysanız, ctrl-] bulmak istediğiniz işlevin üzerindeyken sizi headerfile alır!

0

Sen O işlev için yol adını vereceğiz ayrıca

whereis <function name> 

aşağıdakileri kullanabilirsiniz. Sonra vim editörü kullanarak yolu açın. Daha sonra "vim" editörünü kullanarak başlık dosyasını görebilirsiniz.

Örnek

> whereis atoi 
    atoi: /usr/share/man/man3/atoi.3.gz 

> vim /usr/share/man/man3/atoi.3.gz 

    ---------- 
    ---------- 
    .B #include <stdlib.h> 
+1

Bu," atoi "yi yapmak için karmaşık bir yol gibi görünüyor. – bfontaine

+0

Yukarıda belirtildiği gibi aşırı karmaşık. – haziz

2

Veya, arama yapabilirsiniz sisteminizin en/usr/aradığınız fonksiyon tanımının geçtiği yerleri dizini dahil. Bu, özellikle man sayfaları eksik gömülü veya sıyrılmış linux sistemleri için kullanışlıdır. Örneğin

find /usr/include -name "*.h" -print | xargs grep "<function-you-are-looking-for>" 

, bunu yaparsanız:

find /usr/include -name "*.h" -print | xargs grep atoi 

geri böyle bir şey çıkacak:

/usr/include/stdlib.h:extern int atoi (__const char *__nptr) 

sonuç başlık dosya adı ve arayüz tanımı hem de içerir.

  • Lütfen/usr/include dizininizin başka bir yerde olabileceğini unutmayın.
+1

, birçok şeyin sisteme özel, (ve kernel sürümüne özgü) özel başlık dosyalarında tanımlandığını da unutmayın. Bunlar, public header dosyaları tarafından içerilmiş olup, grep ile arama yapmak size doğru cevabı almaz. –

İlgili konular