C Programlama

C'de Lseek Sistem Çağrısı Nasıl Kullanılır

C'de Lseek Sistem Çağrısı Nasıl Kullanılır

Lseek Sistem çağrısı, bir dosyadan bazı belirli karakterleri veya verileri okumak veya herhangi bir dosyanın belirli bir yerine bazı içerik yazmak için kullanılmıştır. Bu, bir dosyanın içeriği arasında okuyabileceğiniz veya yazabileceğiniz anlamına gelir.

Sözdizimi:

Off_t lseek(int fd, off_t ofset, int nereden);

Bu "lseek" sistem çağrısı iki başlık dosyası gerektirir, e.g., "sistem/tipler.h” ve “unistd.h”. lseek sistem çağrısı üç parametre gerektirir. İlki, bir dosya tanıtıcı olan “fd”dir. İkincisi, işaretçiyi konumlandırmak için kullanılan "ofset"tir. Üçüncü parametre, "nereden", bir dosya işaretçisinin konumunu belirtmek için kullanılır, e.g., başlangıç, bitiş, orta.

Manpage'leri yükleyin:

Sistem çağrılarıyla ilgili ek bilgileri kontrol etmek için manpages-dev paketini kurmanız gerekir. Bu yüzden Ctrl+Alt+ T kısayol tuşunu kullanarak Linux kabuk terminalini başlatmayı deneyin veya aktivite alanından arayın. Komut terminalini başarıyla başlattıktan sonra, manpages-dev kitaplığını kurmak için aşağıdaki apt install sorgusunu yürütün. Kuruluma devam etmek için cari hesap şifrenizi gerektirir. Şifreyi girin ve daktilodan Enter tuşuna dokunun. Kurulum süreci başlayacak ve bilgi toplamaya başlayacak.

$ sudo apt install manpages-dev

Kurulum işlemi sizi biraz bekletecek. Kurulum tamamlandıktan sonra artık “lseek” komutu ile ilgili bilgileri kontrol edebilirsiniz.  Bu nedenle, sistem çağrısının adıyla birlikte aşağıdaki “man 2” komutunu yazın. Gördüğünüz gibi, aşağıdaki talimatta “lseek”i kontrol ediyoruz.

$ adam 2 ara

Aşağıda “lseek” sistem çağrısı için man sayfası açılmıştır. Bununla ilgili tüm bilgileri alabilirsiniz.

GCC Derleyicisini yükleyin:

Şimdi C dil dosyalarının derlenmesi için GCC derleyicisini kurmamızın zamanı geldi. Bu nedenle, aşağıdaki anahtar kelime adı olarak derleyici uzantısını kullanırken, yüklemek için kabukta çok basit bir apt install komutu kullanmanız gerekir.

$ sudo apt yükleme gcc

Kurulumunu tamamlamak biraz zamanınızı alacak. gcc paketini kurduktan sonra Linux sisteminiz içindeki c dil dosyalarını kullanmaya hazırdır.

Örnek 01:

lseek sistem çağrısı kavramını anlamak için derine inmeden önce, basit bir dosya türüyle başlatmanız gerekir. Bu nedenle, terminali başlatın ve Linux dağıtımınızın ana dizininde “seek” adlı basit bir dosya oluşturmak için aşağıdaki dokunmatik komutu deneyin.

$ dokunma araması

“Seek” dosyasına biraz veri ekleyin ve kaydedin. Aşağıdaki basit “cat” sorgusunu kullanarak “arama” dosyasını komut satırı kabuğunda görebilirsiniz. Bir dosyanın içeriğinde “*” işaretiyle birlikte bazı harfler ve sayılar vardır.

$ kedi arayışı

C tipi bir dosya oluşturalım “test.c”, Nano düzenleyiciyle doğrudan açmak için nano anahtar sözcüğünü kullanarak. Bunu yapmak için aşağıdaki komutu çalıştırmayı deneyin.

$ nano testi.c

lseek komutu olmadan bir programı kontrol edelim. Üst tarafta belirtilen C tipi bir dosya ile bir nano metin düzenleyici açacaktır. Şimdi editör C dosyasındaki resimden aşağıda gösterilen kodu yazın. İlk 4 satır, “lseek” komutunu uygulamak için gerekli başlık dosyalarını içerir. Bundan sonra, ana işlev başlatıldı. Bu ana yöntemde, daha fazla kullanım için tamsayı ve karakter tipi verileri tanımladık. Ana işlevin üçüncü satırı, yukarıda az önce oluşturduğumuz “arama” adlı bir dosyayı açmak için open çağrısını kullanıyor ve “O_RDWR” ofsetini okuma ve yazma izinleri için kullanıldı. Dosyadaki içerik "f" dosya tanımlayıcısına döndürüldü. Bundan sonra, arama dosyasından 12 karakterlik veriyi okumak için ilk okuma yöntemi çağrısını kullandık. Yazma işlevi ekrana veri yazmak için kullanılmıştır. “f” dosya tanımlayıcısından sonraki 12 karakteri almak için başka bir okuma komutu kullanıldı ve yazma komutu, sonraki 12 karakteri çıktı ekranına okuyor. Bundan, çıktının “arama” dosyasından toplam 24 karakter göstereceğini varsayabiliriz. Bu dosyayı kaydetmek için Ctrl+S tuşlarına basın ve kapatmak için Ctrl+X'i deneyin.

Hadi sadece “testi” derleyelim.c” dosyasını aşağıdaki GCC derleyici komutunu kullanarak.

$ gcc testi.c

Şimdi “testin” kodunu çalıştırın.C kodunun çıktısını aşağıda verilen şekilde kontrol etmek için c” dosyası. Çıktı, aşağıdaki gibi dosya aramasından 24 karakterlik içerik kümesini görüntüledi.

$ ./a.dışarı

Bir sistem çağrısının çıktısını kontrol etmek için koddaki “lseek” komutunu kullanalım. Yani aynı testi aç.c dosyası aşağıdaki nano komutu kullanarak.

$ nano testi.c

Kodunuzu olduğu gibi güncelleyin. Bu sefer içerik dosyasından okunacak ve yazılacak 6 karakter kullandık. İçerik dosyasından sonraki 5 karakteri atlamak ve “SEEK_CUR” ofsetini kullanarak sonraki karakterlere atlamak için lseek komutu kullanılmıştır.

Bu kodu tekrar derleyelim.

$ gcc testi.c

a kullanılarak C kodunun çıktısı.out komutu ilk 6 karakteri gösterir, ardından sonraki 5 karakteri atlar ve ardından ardışık sonraki 6 karakteri gösterir.

$ ./a.dışarı

Örnek 02:

Biraz değişiklik yapmak için kodu değiştirelim. Önce dosyayı aç.

$ nano testi.c

Şimdi, “lseek” sistem çağrısına bir dizgenin 10. konumundan sonraki 6 karakteri göstermesini söylemek için “SEEK_SET” ofsetini kullanacağız.

C dosyasını derleyin.

$ gcc testi.c

çıkış komutu bir.out, bir dizenin 10. dizinindeki 6 karakteri gösteriyor.

Sonuç:

Bu kılavuz, istediğimiz herhangi bir konumdan içeriği veya verileri kontrol etmek veya göstermek için "lseek" sistem çağrı komutunu kullanmanın bazı basit örneklerini yapmıştır.

How to download and Play Sid Meier's Civilization VI on Linux
Introduction to the game Civilization 6 is a modern take on the classic concept introduced in the series of the Age of Empires games. The idea was fai...
How to Install and Play Doom on Linux
Introduction to Doom The Doom Series originated in the 90s after the release of the original Doom. It was an instant hit and from that time onwards th...
Vulkan for Linux Users
With each new generation of graphics cards, we see game developers push the limits of graphical fidelity and come one step closer to photorealism. But...