7 Mart 2017 Salı

Bilgisayarı Kapatma Kodu C



C sistem kaynaklarına direk erişebildiği için C ile farklı mümkündür.
Bu kapsamda kullanılan fonksiyonlardan bir tanesi system dir.

 system("C:\\WINDOWS\\System32\\shutdown /s");



Örnek 4: Dosya Silme



musteri.txt isimli dosya program  tarafından oluşturulacaktır. Daha sonra aşağıdaki ekran çıktısı desteklenecektir.


remove() Fonksiyonu




Bir dosyayı silmek için kullanılır.

int remove (char *dosya-adı);

remove() fonksiyonu dosya-adı parametresi ile gösterilen dosyayı siler.
Başarılı bir şekilde sona erdiğinde 0 değerini, aksi takdirde 0 olmayan bir değer geri verir.

Örnek 3: Rastgele Erişimli Bir Dosyaya Rastgele Veri Yazmak

Aşağıdaki yapıyı tanımlayınız.
typedef struct
{
  int HesapNo;
  char Isim[100];
  float Bakiye;
} stHesap;
musteri.txt isimli dosyaya Hesap No değeri 0 olana kadar Hesap bilgilerinin yazılmasını sağlayın.
Hesap No’ya göre dosyanın konumlanmasını sağlayın. Örn: Hesap No: 4 girilirse ise  kaydı fseek() fonksiyonu ile konumlandırıp,  dosyada 4. sıraya ekleyelim.
Dosyaya yazma işlemi için fwrite() fonksiyonunu kullanın.
Yazma işleminden sonra dosya başına rewind() fonksiyonu kullanarak konumlandırma yapın.
Son olarak dosyadan okuma işlemini fread() fonksiyonu kullanarak gerçekleştirin.




fseek() Fonksiyonu



Şimdiye kadar yazdığımız bütün kodlarda, dosyadan yaptığımız okuma işlemlerini dosyanın başından sonuna doğru bir sıra dahilinde yaptık.
Bu tipte dosya erişimine Sıralı Erişim denilmektedir.
Bunun yanında, fseek() fonksiyonunu kullanarak dosyaların herhangi bir yerindeki bilgi okunabilir.
Bu tipte dosya erişimine Rastgele Erişim denilmektedir.

int fseek (FILE *fp, long ara, int yer);

fp parametresi işlem yapılan dosyayı,
ara parametresi yer ifadesinin gösterdiği değerin tanımladığı dosya konumundan, işlem yapılmak istenen yerin byte olarak uzaklığını verir.
yer parametresi dosyada arama işleminin başlayacağı yeri gösterir.

yer parametresinin alabileceği değerler aşağıdaki gibidir:
SEEK_SET (0) Aramayı dosya başından başlatır.
SEEK_CUR (1) Aramayı aktif konumdan başlatır.
SEEK_END (2) Aramayı dosya sonundan başlatır.

Örnek 2: rewind ve struct Kullanımı

Aşağıdaki yapıyı tanımlayınız.
typedef struct
{
  int HesapNo;
  char Isim[100];
  float Bakiye;
} stHesap;
musteri.txt isimli dosyaya Hesap No değeri 0 olana kadar Hesap bilgilerini yazılmasını sağlayın.
Dosyaya yazma işlemi için fwrite() fonksiyonunu kullanın.
Yazma işleminden sonra dosya başına rewind() fonksiyonu kullanarak konumlandırma yapın.
Son olarak dosyadan okuma işlemini fread() fonksiyonu kullanarak gerçekleştirin.





rewind() Fonksiyonu



Normalde bir dosyaya yazma işlemini tamamladıktan sonra, dosyayı tekrar okumak istediğimizde dosyayı kapatır ve dosyayı okuma modunda tekrar açarız.

fopen("w");
dosyaYazmaIslemleri();
fclose(fp);
fopen("r");
dosyaOkumaIslemleri();
fclose(fp);


Dosya açma kapatma işlemi yerine, bir dosyanın aktif konumunu dosya başına almak için rewind() fonksiyonunu kullanabilir.
    void rewind (FILE *fp);
fp parametresi ile gösterilen dosyanın aktif konum göstergesini dosyanın başına alır.
Bu fonksiyon herhangi bir değer geri vermez. Çünkü, başarılı bir şekilde açılan dosyanın aktif konumu başa alınabilir.