9.4 Komut Satırı Örnekleri Aşağıda verilen iki program, Linux işletim sistemindeki cp ve wc komutlarının basit kaynak kodlarıdır: cp (copy) komutu, bir text dosyasının kopyasını oluşturur. Kullanımı: cp kaynak_dosya hedef_dosya
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
/* cp.c cp komutunun basit modeli Dosya kopyalama örneği. Kullanımı: cp <kaynak dosya adı> <hedef dosya adı> */ #include <stdio.h> #include <stdlib.h> int main(int argsay,char *argvek[]) { FILE *kaynak, *hedef; char kr; if(argsay != 3){ printf("Eksik veya fazla parametre !\n"), exit(1); if( (kaynak = fopen(argvek[1],"r+b")) == NULL ) printf("%s dosyasi bulunamadi\n",argvek[1]), exit(1); if( (hedef = fopen(argvek[2],"w+b")) == NULL ) printf("%s dosyasi olusturulamiyor...\n",argvek[2]), exit(1); kr = fgetc(kaynak); while( !feof(kaynak) ) { fputc(kr,hedef); kr = fgetc(kaynak); } printf("Dosya kopyalandi.\n"); printf("%s > %s \n", argvek[1], argvek[2]); fclose(kaynak); fclose(hedef); return 0; } |
wc (word count) komutu, bir dosyanın kaç karakter, kelime satırdan oluştuğunu bulup ekrana yazar. Kullanımı: wc dosya_adı
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
/* wc.c Bu program bir dosyanın kaç satır, kelime ve karakterden oluştuğunu bulup ekrana yazar. -------------------------------------- Kullanımı : wc <dosya_adı> örnek: wc test.php 20 355 1546 test.php -------------------------------------- Mart 2008 */ #include <stdio.h> #include <stdlib.h> #include <string.h> #define CR '\n' #define TAB '\t' #define SPACE ' ' #define ZERO 0u int main( int args, char *argvek[] ) { FILE *dosya; int bayrak = 0; unsigned long kar, kelime, satir; unsigned char kr; kar = ZERO; kelime = ZERO; satir = ZERO; if( argvek[0] ) { if( (dosya = fopen(argvek[1], "r")) == NULL ){ printf("Kullanimi: wc <dosya_adi>\n"); exit(1); } /* dosyanın sonuna kadar */ while( !feof(dosya) ) { fscanf(dosya, "%c", &kr); kar++; /* karakter sayısı */ if( kr == CR ) satir++; /* sayfa sonu karakteri */ if( kr == SPACE || /* boşluk karakteri */ kr == CR || /* sayfa sonu karakteri */ kr == TAB ) /* tab karakteri */ bayrak = 0; else if(bayrak == 0){ bayrak = 1; kelime++; } } } fclose(dosya); printf(" %lu %lu %lu %s\n",satir-1, kelime, kar-1, argvek[1]); return 0; } |