Her Yönüyle C
Would you like to react to this message? Create an account in a few clicks or log in to continue.
Her Yönüyle C

Hepsi Burada
 
AnasayfaAnasayfa  PortalliPortalli  GaleriGaleri  AramaArama  Latest imagesLatest images  Kayıt OlKayıt Ol  Giriş yapGiriş yap  

 

 İSLETİM SİSTEMİ YONTEMİ

Aşağa gitmek 
YazarMesaj
Admin
Admin
Admin


Erkek
Mesaj Sayısı : 804
Yaş : 35
Location : KoCaElİ
Kayıt tarihi : 29/10/07

Character sheet
Field:
İSLETİM SİSTEMİ YONTEMİ Left_bar_bleue100/100İSLETİM SİSTEMİ YONTEMİ Empty_bar_bleue  (100/100)

İSLETİM SİSTEMİ YONTEMİ Empty
MesajKonu: İSLETİM SİSTEMİ YONTEMİ   İSLETİM SİSTEMİ YONTEMİ Icon_minitimePtsi Kas. 12, 2007 2:23 am

system() FonksiyonuBu kısımda standart bir derleyicinde bulunan, stdlib.h kütüphanesindeki system() fonksiyonu anlatılacaktır. Bu fonksiyon kendisine parametre olarak gelen ifadeyi UNIX, Linux veya MS-DOS komut satırına yazar ve çalıştırır. system() fonksiyonu ile, bilgisayarın tüm dosya ve çevre birimleri, küçük program parçaları sayesinde kontrol edilebilir. Genel yazım biçimi:
system("işletim sistemi komutu");

Örneğin, Windows dizininde bulunan tüm dosyaları listelemek için system("dir c:\\windows");

Bu fonksiyonun Linux İşletim sistemindeki kullanımı da aynıdır. Örneğin /home/bingul/web dizinindeki dosya ve alt dizinleri listelemek için system("ls -asl /home/bingul/web");
Program 17.1, D: sürücüsünde bulunan tüm dosyaları gizli ve salt okunur hale getirmek için kullanılır. Son olarak, derleyicinin EXE kodu üreteceğini unutmayın. Bu EXE kodu her bilgisayarda çalışır.

Program 17.1: D: sürücüsünde bulunan bütün dosyaları gizli ve salt-okunur hale getirir




[color=gray] 1:
/* 17prg01.c:
2: D: sürücüsündeki bütün dosyaları gizli ve salt-okunur hale getirir */

3:
4: #include <stdlib>
5:
6: main()
7: {
8: system("attrib d:\\*.* +h+r");
[color:9730=gray:9730] 9: }
Program 17.2 proramında autoexec.bat dosyasına DOSKEYin nasıl yükleneceği gösterilmiştir. Bunun için >> yönlendirme operatörü kullanılmıştır. Bu operatör MSDOS işletim sisteminde olduğu gibi Linux işletim sisteminde de kullanımı aynıdır.

Program 17.2: Bilgisayar açılışında DOSKEY in yüklenmesi




[color=gray] 1:
/* 17prg02.c: autoexec.bat dosyasına 'doskey /insert' yazar */
2:
3: #include <stdio>
4: #include <stdlib>
5:
6: main()
7: {
8: system("echo. >> c:\\autoexec.bat");
9: system("echo doskey /insert >> c:\\autoexec.bat");
10:
11: printf("DOSKEY açılışa yüklendi...\n");
[color:9730=gray:9730]12: }






NOT
Program 17.2 sadece bir kez çalıştırılmalı. Aksi halde autoexec.bat dosyasına defalarca doskey /insert ifadesi eklenir.

main() Fonksiyonuna Paremetre AktarımıFonksiyon inşasına dayanan bir C programında, ana programın kendisi, main(), de bir fonksiyondur. Ana programa parametre aktarımı, derlenmiş bir program komut satırından (işletim sistemi ortamından) ilk çalıştırılacağı zaman yapılır. Aktarılacak parametreler, programın adı yazılıp bir boşluk bırakıldıktan hemen sonra yazılır. Parametreler, komut satırından sayısal olarak girilse bile program içinde karakter topluluğu (string) olarak gelir. Bu durumda, string ifadeleri sayısal değerlere çeviren fonksiyonlar (atoi(), atol(), atof(),...) kullanılmalıdır[1]. Genel kullanım biçimi:
...
main(arguman_sayısı,arguman_vektörü)
int arguman_sayısı;
char *arguman_vektörü[];
{
.
.
.
if(arguman_sayısı <printf> ...){
printf("Cok fazla parametre !\n");
exit(1);
}
.
... arguman_vektörü[0] ... /* 1. eleman program adı */
... arguman_vektörü[1] ... /* 2. eleman 1. parametre */
... arguman_vektörü[2] ... /* 3. eleman 2. parametre */
.
}

Program 17.3, komut satırından girilen iki sayının toplamını hesaplamaktadır.
Program 17.3: Komut satırından girilen iki sayının toplamını hesaplar




[color=gray] 1:
/* 17prg03.c yada topla.c:
[color=gray] 2:
Komut satırından girilen iki sayının toplamını hesaplar.
[color:9730=gray:9730] 3: Kullanımı: topla sayı1 sayı2 */
4:
5: #include <stdio>
6: #include <stdlib>
7:
8: main(int argsay, char *argvek[])
9: {
10: int toplam;
11:
12: if(argsay <3> 3)
19: {
20: printf("Cok fazla parametre !\n");
21: exit(1);
22: }
23:
24: toplam = atoi(argvek[1]) + atoi(argvek[2]);
25:
26: printf("Toplamlari %d\n",toplam);
[color:9730=gray:9730]27: }
Program 17.3 derlendikten sonra MS DOS ve/veya Linux ortamında çalıştırılması şöyledir:

Derleme:



MS DOS (Turbo C)
Linux

C:\TC> tcc topla.c
$ gcc topla.c -o topla
Çalıştırma ve çıktı:



MSDOS (Turbo C)
Linux

C:\TC>topla 1 2
Toplamları 3

$ topla 1 2
Toplamları 3

C:\TC>topla 9 5 8
Çok fazla parametre !

$ topla 9 5 8
Çok fazla parametre !


C:\TC>topla 5
Eksik parametre !

$ topla 5
Eksik parametre !
Komut satırında yazılan dosya adı dahil toplam parametre sayısı 3 tür. Bunlar:
argsay = 3

1 2 3
----- ----- -----

topla 58 34

^ ^ ^
| | |
argvek[0] argvek[1] argvek[2]
şeklindedir. Program 17.3, komut satırından girilen iki sayının toplamını hesaplar. Bu programın daha gelişmiş hali Program 17.4'de verilmiştir. Program 17.4 çalıştırıldığında, komut satırından girilen iki sayı ve bir operatör bekler. Girilen operatöre göre beş aritmetik işlemden birinini yapıp sonucu ekranda gösterir. İnceleyiniz.

Program 17.4: Komut satırından girilen iki sayı ve bir operatör bilgisine göre 5 işlemden birini hesaplar




[color=gray] 1:
/* 17prg04.c yada hesap.c:
[color=gray] 2:
Komut satırından girilen iki sayı üzerinde 5 işlem yapar.
[color:9730=gray:9730] 3: Kullanımı: Kullanimi: hesap <sayi1> <operator> <sayi2> */
4:
5: #include <stdio>
6: #include <stdlib>
7:
8: void main(int argsay, char *argvek[])
9: {
10: int x,y;
11: float sonuc;
12: char op;
13:
14: if(argsay != 4){
15: printf("Eksik veya fazla parametre !\n");
16: printf("Kullanimi: hesap <sayi1> <operator> <sayi2>\n");
17: exit(0);
18: }
19:
20: x = atoi(argvek[1]); /* 1. parametre: sayi1 */
21: op = argvek[2][0]; /* 2. parametrenin ilk karakteri: operator */
22: y = atoi(argvek[3]); /* 3. parametre: sayi2 */
23:
24: if(op=='+') sonuc = (float) x+y;
25: else if(op=='-') sonuc = (float) x-y;
26: else if(op=='*') sonuc = (float) x*y;
27: else if(op=='/') sonuc = (float) x/y;
28: else if(op=='%') sonuc = (int) x%y;
29: else{
30: sonuc = 0.0;
31: printf("Yanlis operator %c\n",op);
32: printf("Operatorler: +, -, *, / veya %\n");
33: exit(1);
34: }
35:
36: printf("\nSonuc : %f\n",sonuc);
[color:9730=gray:9730]37: }

Derleme:



MS DOS (Turbo C)
Linux

C:\TC> tcc hesap.c
$ gcc hesap.c -o hesap
Çalıştırma ve çıktı:



MSDOS (Turbo C)
Linux

C:\TC>hesap 1 2
Eksik veya fazla parametre !
Kullanimi: hesap <sayi1> <operator> <sayi2>
$ hesap 1 2
Eksik veya fazla parametre !
Kullanimi: hesap <sayi1> <operator> <sayi2>

C:\TC>hesap 13 / 3
Sonuc : 4.333333

$ hesap 13 / 3
Sonuc : 4.333333


C:\TC>hesap 35 & 27
Yanlis operator &
Operatorler: +, -, *, / veya %

$ hesap 35 & 27
Yanlis operator &
Operatorler: +, -, *, / veya %
Sayfa başına dön Aşağa gitmek
https://cprogramlama.yetkin-forum.com
 
İSLETİM SİSTEMİ YONTEMİ
Sayfa başına dön 
1 sayfadaki 1 sayfası

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
Her Yönüyle C :: C Programlama :: C Konu Anlatımları-
Buraya geçin: