«c» etiketlenmiş sorular

C, sistem programlama (OS ve gömülü), kütüphaneler, oyunlar ve çapraz platform için kullanılan genel amaçlı bir programlama dilidir. Bu etiket, ISO 9899 standardında tanımlandığı gibi C dili ile ilgili genel sorularla kullanılmalıdır (aksi belirtilmedikçe en son sürüm 9899: 2018 - c89, c99, c11 vb. İle sürüme özgü istekleri de etiketleyin). C, C ++ 'dan farklıdır ve rasyonel bir nedenden yoksun C ++ etiketi ile birleştirilmemelidir.


4
PTHREAD_MUTEX_INITIALIZER - pthread_mutex_init (& mutex, param)
Arasında herhangi bir fark var mı pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; Veya pthread_mutex_t lock; pthread_mutex_init ( &lock, NULL); Yalnızca ilk yöntemi kullanırsam yeterince güvende miyim? NOT: Sorum çoğunlukla çok küçük programlarla ilgilidir, burada en çok yapacağım şey birkaç istemciyi bir sunucuya bağlamak ve sorgularını çalışan iş parçacıklarıyla çözmek.
91 c  ubuntu  pthreads  mutex 

7
2B bir diziyi 1 boyutlu bir diziye eşleyin
Bir 1B dizisi ile bir 2D diziyi temsil etmek istiyorum. Bir işlev iki göstergeyi (x, y) ve saklanacak değeri iletir. Bu iki gösterge, 1B dizisinin tek bir öğesini temsil edecek ve buna göre ayarlayacaktır. 1D dizisinin arrayWidth × arrayHeight boyutunda olması gerektiğini biliyorum, ancak her bir öğeyi nasıl ayarlayacağımı bilmiyorum. …

1
## (çift hash) bir önişlemci yönergesinde ne yapar?
#define DEFINE_STAT(Stat) \ struct FThreadSafeStaticStat<FStat_##Stat> StatPtr_##Stat; Yukarıdaki satır Unreal 4'ten alınmıştır ve bunu gerçek dışı forumlarda sorabileceğimi biliyorum, ancak bence bu, burada sorulmasını garanti eden genel bir C ++ sorusu. İlk satırın bir makroyu tanımladığını anlıyorum, ancak C ++ 'da önişlemci kuruntuları konusunda çok bilgili değilim ve bu yüzden orada …




4
Bir C programında bir dizindeki dosyalar nasıl listelenir?
Linux'ta bir ftp sunucusu yazmaya çalışıyorum. Bu konuda bir C programı ile terminaldeki dizindeki dosyaları nasıl listeleyebilirim? Belki find komutunu çalıştırmak için exec işlevini kullanabilirim ama istemci programı göndermek için dosya adını bir dizge olarak istiyorum. Bunu nasıl yapabilirim? Cevaplar için teşekkürler.
91 c  linux 

7
Bir switch ifadesinde Continue kullanma
switchAşağıdaki kodda bir ifadenin ortasından döngü ifadesine atlamak istiyorum : while (something = get_something()) { switch (something) { case A: case B: break; default: // get another something and try again continue; } // do something for a handled something do_something(); } Bu geçerli bir kullanım yolu continuemu? Are continuetarafından …

5
Backtrace () / backtrace_symbols () işlev adlarını nasıl yazdırabilirim?
Linux'a özgüdür backtrace()ve backtrace_symbols()programın bir arama izini oluşturmanıza izin verir. Ancak, programımın adlarını değil, yalnızca işlev adreslerini yazdırır. İşlev adlarını da yazdırmalarını nasıl sağlayabilirim? Ben ile program derleme denedim -gyanı sıra -ggdb. Aşağıdaki test durumu yalnızca şunu yazdırır: GERİ TAKİP ------------ ./a.out () [0x8048616] ./a.out () [0x8048623] /lib/libc.so.6(__libc_start_main+0xf3) [0x4a937413] ./a.out …
91 c  linux  debugging  backtrace 

3
C Ön İşlemcisini kullanarak int'i dizeye birleştirin
C'yi kullanarak bir #define'd int'i bir #define' d dizesine nasıl birleştirebileceğimi anlamaya çalışıyorum. Ön İşlemcisini . Derleyicim CentOS 5 üzerinde GCC 4.1'dir. Çözüm ayrıca MinGW için de çalışmalıdır. Bir dizeye bir sürüm numarası eklemek istiyorum, ancak onu çalıştırabilmemin tek yolu, dizeler olarak tanımlanan sürüm numarasının bir kopyasını oluşturmaktır. Bulabildiğim en …

4
GDB: değişken eşit değerde kırılır
Bir değişken ayarladığım bir değere eşit olduğunda GDB'nin bir kırılma noktası belirlemesini seviyorum, bu örneği denedim: #include <stdio.h> main() { int i = 0; for(i=0;i<7;++i) printf("%d\n", i); return 0; } GDB'den çıktı: (gdb) break if ((int)i == 5) No default breakpoint address now. (gdb) run Starting program: /home/SIFE/run 0 1 …
91 c  gdb 

9
C'de nan ve inf nasıl kullanılır?
Bir hata olduğunda nan veya inf döndürebilen sayısal bir yöntemim var ve test amaçlı olarak, durumun doğru şekilde işlendiğinden emin olmak için onu geçici olarak nan veya inf döndürmeye zorlamak istiyorum. C'de nan ve inf değerlerini oluşturmanın güvenilir, derleyiciden bağımsız bir yolu var mı? Yaklaşık 10 dakika boyunca googledikten sonra …
91 c  math 


2
Bu nedir (( ))?
Gcc derleyici kaynak koduna (gcc / c-family / c-pragma.c) göz atarken şunu görüyorum: typedef struct GTY(()) align_stack { int alignment; tree id; struct align_stack * prev; } align_stack; ve arkamda birçok C programlama yılı olmasına bakılmaksızın, bu parçalar: (())henüz benim için tamamen bilinmemektedir. Lütfen birisi ne demek istediğini açıklayabilir mi? …
90 c++  c 

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.