Linux manpage sayfalarındaki C fonksiyon bilgileri

Linux’da herhangi bir C fonksiyonunu “man fonksiyonadı” ile öğrenebilirsiniz. man malloc, man printf, man gets … gibi.Ben daha bugün yeni öğrendim, bunca zaman elimin altında böyle basit ve işe yarayan bir kaynak varmış da benim haberim yok. Bu zamana kadar hep Google’dan arama yapar arardım, keşke daha önce bilseydim. Ayrıca finaller bitsin şuradaki belgeleri de incelemeyi düşünüyorum :

http://fotisl.wordpress.com/2006/06/03/c-editing-with-vim/
http://www.justlinux.com/nhf/Programming/Introduction_to_C_Programming.html
http://www.linuxjournal.com/article/8289

Bu üç belge, Vim ile C’nin nasıl daha verimli yazılabileceğimizi anlatıyor. Vim konusunda daha çok çok acemiyim, fakat öğrendikce daha çok beğeniyorum, daha çok bağlanıyorum. Geçen okulda Lab dersi varken bunu çok daha iyi anladım. 5dk’lık bir işi 30 dk’da anca yazabildm. Hele birde elim alışmış, her seferinde Esc, sonra yy, ve pp. Hata yaptığımı anlıyorum, u tuşuna basıyorum. Sileyim derken dd’ye basıyorum. Tam bir fiyasko anlayacağınız :)

C’de gets yerine fgets kullanın

Okulda verilen ödevi yapmaya çalışırken bu iki komut ile karşılaştım, sonra her ne kadar işime yaramadığını anladıysam da, ileride belki işime yarayabilir diye öğrenmiştim.İlk başta bir string tanımlayalım, 50 byte büyüklüğünde.

char string[50];

Ardından istediğiniz yere : gets(string); yazın. Sizden scanf komutu gibi stringi doldurmanızı isteyecek. Fakat boşluklar da dahil. Uzun yazılar için birebir yani. Gets’e benzer birde fgets komutu vardır. Gets yerine fgets kullanmak da daha mantıklıdır. Çünkü gets string’in büyüklüğünü gözardı ediyor. Nasıl yani ?

Şöyle ki, örneğin gets ile 110-120 karakterlik bir cümle yazdıysanız, programınız sağlıklı çalışmaz, hata verir. Gets tüm yazdığınız karakterleri kaydetmeye çalışacak. Fakat bizim string’e ayırdığımız alan sadece 50 byte. Bu yüzden fgets’kullanmak daha mantıklı. Kullanımı da şu şekilde:

fgets(string, sizeof(string), stdin);

Burada string bildiğimiz string, sizeof(string) ise string’in büyüklüğü(byte olarak), stdin de standart input, yani klavyeden girdiğimiz veri. Stdin yerine de dilerseniz dosya adını da yazabilirsiniz. sizeof(string) yerine 100, 53, 134 gibi sayılar da yazabilirsiniz. Size bağlı. Bu yüzden fgets’i kullanmak daha iyi, çünkü belirleyici bir sayı var, onun geçmesine izin vermiyor.

Not:(Yazıda ingilizce kelimelerin Türkçe karşılığını bilmediğim için aynen öyle yazdım, string gibi.)

C ile en büyük ve en küçük sayıları bulma

Kod’u çalıştırdıktan sonra, sayılar girmenizi isteyecek, sonra da en büyük ve en küçük sayıyı size gösterecek. İnternet’de çok araştırmıştım fakat bir çözüme ulaşamamıştım. “Largest Smallest Number C Programming” diye aratınca da pek bir şey bulamadım. Başkaları arayınca burayı bulsunlar diye yazdım kelimeleri :) En son çare’yi Freenode’a ##c kanalında buldum. Pragma takma adlı bir kişi bir iki yerde yardım etti bana. Buraya yazdıklarımı bilmezse dahi, kendisine teşekkür ederim.

#include 
#define Sentinel 0

int largest(int max, int a);
int smallest(int min,int b);

int main(void)
{
	int maximum,minimum,num;	

	printf("\nInput the number(Enter %d for exit): ", Sentinel); 	scanf("%d", &num);

	maximum = num;
	minimum = num;

	while (num != Sentinel) {
		maximum = largest(maximum,num);
		minimum	= smallest(minimum,num);
		printf("Input the number(Enter %d for exit): ",Sentinel); 	scanf("%d", &num);
	}

	printf("\nLargest number: %d\n", maximum);
	printf("Smallest number: %d\n\n", minimum); 

	return (0);
}

//Get numbers and compare, return the largest
int largest(int max, int a)
{
	if ( max < a)	{
		return (a);
	}
	else 	{
		return (max);
	}
}

//Get numbers and compare, return the smallest
int smallest(int min,int b)
{
	if ( min > b)		{
		return (b);
	}
	else {
		return (min);
	}
}

Not:(Çok basit olduğunu bliliyorum fakat bulamamıştım belki başkaların işine yarar)
Not 2: Programlama adında yeni bir kategori açtım.

Linux ortamında C programlama araçları

C TerminalOkulda bu sene C ile programla dersini alacağız. Bundan 1 sene önce başlamıştım C ile uğraşmaya, sonra ama nedeni olmayan bir sebebden dolayı bıraktım. Şimdilerde yine bu fırsat ellime geçti, ve okul ile beraber kendimi bu alanda geliştirmeyi düşünüyorum. İleride ise kendi adıma Açık Kaynak camiası için bir program yazıp, bu vesiyle de teşekkür etmiş olacağım. Ayrıca bu sayede öğrendiklerimi pekiştirme ve uygulama fırsatım da doğacak.

Gelelim Linux altında C ile programlamak için hangi araçları kullanabileceğimize. Bunun için bir çok metin düzenleyici ya da IDE’ler mevcut. Bazıları çok kapsamlı, bazıları ise sade ve pek bir özelliği yok. Size uygun olan hangisi ile onunla yolunuza devam edin. İlk önce en temel bilgi ile başlayalım. C kaynak kodunu Linux altından nasıl derlerim ? Bu sorunun cevabı şu şekilde

Okumaya devam edin »

« Previous Page