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.

1
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:

1
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.

Wordpress kod renklendirme eklentileri

1 hafta önce sizlere Google Code Prettify programını tanıtmıştım. Wordpress ile kullanmak isteyince sorunlar ortaya çıkmıştı. Biraz araştırdım, ve bir ispanyol blogunda eklentiyi gördüm. Fakat eklentiyi kurduktan sonra da bir takım düzeltmeler yapılması gerekiyordu. Bu yüzden başka arayışlara girdim.

Karşılaştığım iki tane güzel eklenti vardı. Biri Dean’s Code Highlighter diğeri de SyntaxHighlighter. İkisini de kurdum denedim, ve Dean’s Code Highlighter eklentisini kullanmaya karar verdim. Diğerinde satıları kısıtlamanın imkanın bulamadım. Bulabilseydim Syntaxhighlighter kullandım. Okulda C dersi alıyoruz bu sene, ve küçük küçük şeyler de yazıyorum. Bunlar da yayımlamak isterken biraz daha okunaklı olmasını istiyorum.

Google Code Prettifier – Kodlarınızı sitenize daha güzel yansıtın

Bir çok geliştirici yazdığı kodları bazen kendi sitesinde yayımlar. Kodları eklerken de sorun çıkabliyor tabi, özellikle 100+ satır kodlar anlaşılmaz duruma gelebiliyor.

Google Code Prettify

Kodları daha iyi bir şekilde göstermek için Google Code Prettifier adlı Javascript betiğini ve Css dosyasını sitelerine yükleyebilirler. “prettyprint” pre-etiketleri arasındaki her kod betik tarafından okunup, css dosyasındaki görünüm özelliklerine göre değiştirilecektir. Renklendirme(Syntax Highlighting)’nin yanında ayrıca kodları otomatik olarak hızalandırma da yapabiliyor. Şu an desteklenenler arasında C, Java, Python, Bash, SQL, HTML, XML, CSS, Javascript, ve Makefile dosyaları var.

Örnek olarak çeşitli dillerdeki görünümü şuradan bakabilirsiniz. Betik özellikle geliştiriciler için güzel bir araç. Bu sayede az da olsa, kodları daha güzel okuyabilme ve ayırtetme imkanı olacak.

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 »