Lompat ke konten Lompat ke sidebar Lompat ke footer

Fungsi LSEEK Bahasa C dan Penjelasannya

Ketika sebuah file diberikan ada program, seperti input.txt, kemudian program tersebut membaca byte alternatif nth dan menuliskannya pada file lain, maka proses tersebut dapat dilakukan dengan bantuan fungsi lseek() Bahasa C.

Fungsi LSEEK Bahasa C dan Penjelasannya
Fungsi lseek() Bahasa C

Sebelum memahami lebih dalam materi tentang Fungsi LSEEK Bahasa C dan Penjelasannya, terlebih dahulu pelajari materi tentang: Fungsi FTELL Bahasa C Beserta Penjelasannya [klik], Fungsi FSEEK Bahasa C dan Penjelasannya [klik], dan Fungsi FGETC dan FPUTC Bahasa C dan Penjelasannya [klik].

Fungsi lseek(): merupakan sebuah sistem pemanggilan yang digunakan untuk mengubah lokasi dari pointer read atau pointer write dari sebuah file deskriptor. Lokasi tersebut dapat diatur baik dalam tipe absolut atau dalam tipe makna relatif.

Definisi Fungsi: off_t lseek(int fildes, off_t offset, int whence);

Keterangan:
  • int fildes: Merupakan file deskriptor dari pointer yang akan digerakkan.
  • off_t offset: Merupakan pointer offset yang diukur dalam satuan byte.
  • int whence: Merupakan method yang akan diinterpretasikan oleh offset, baik itu bertipe relatif, absolut, dan lain sebagainya. Nilai resmi variabel r adalah disediakan pada bagian akhir.
  • return value: Berfungsi untuk mengembalikan offset dari pointer dalam satuan byte yang berasal dari bagian awal file. Jika nilai dikembalikan nilai -1, maka terjadi error pada saat proses memindahan pointer.

Baca Juga:

Contoh:

// Program bahasa C untuk

// membaca byte nth dari suatu

// file dan menduplikasikannya

// ke file lain menggunakan

// fungsi lseek().

#include <stdio.h>

#include <unistd.h>

#include <sys/types.h>

#include <fcntl.h>


void func(char arr[], int n)

{


// Membuka file untuk READ

// only.

int f_write = open("start.txt", O_RDONLY);


// Membuka file untuk WRITE

// dan READ only.

int f_read = open("end.txt", O_WRONLY);

int count = 0;


while (read(f_write, arr, 1))

{


// Untuk menulis byte pertama dari file input pada output file.

if (count < n)

{


// SEEK_CUR menentukan bahwa

// offset disediakan dalam

// tipe relatif ke posisi file

// saat ini.

lseek (f_write, n, SEEK_CUR);

write (f_read, arr, 1);

count = n;

}


// Setelah byte nth,

// selanjutnya dilakukan

// pengambilan nth byte

// alternatif.

else

{

count = (2*n);

lseek(f_write, count, SEEK_CUR);

write(f_read, arr, 1);

}


}


close(f_write);

close(f_read);


}


// Driver code

int main()

{


char arr[100];

int n;

n = 5;


// Memanggil fungsi func.

func(arr, n);


return 0;

}


Referensi Tambahan:

Artikel ini didedikasikan kepada: Kukuh RaharjoLatifa Sudagnyana Mustikaning Wahid'DyahLinda Riana AnggrahiniListianingsih, dan Lovioleta Rifani Putri Azzahra.

5 komentar untuk "Fungsi LSEEK Bahasa C dan Penjelasannya"

  1. Apa yang dimaksud dengan fungsi lseek() pada bahasa C?

    BalasHapus
    Balasan
    1. Fungsi lseek() pada bahasa C merupakan fungsi yang digunakan untuk mengubah offset file saat ini ke posisi baru dalam file. Posisi baru tersebut adalah offset byte yang diberikan dari posisi yang telah ditentukan oleh wherece.

      Hapus
    2. Setelah fungsi lseek() bahasa C digunakan untuk mencari lokasi baru, maka operasi input dan output berikutnya adalah pada file akan dimulai pada lokasi yang telah dicari tersebut.

      Hapus
  2. Nilai return apa yang akan diberikan oleh fungsi lseek() pada bahasa C?

    BalasHapus
    Balasan
    1. Setelah berhasil menyelesaikan proses yang dilakukan pada program, maka fungsi lseek() akan mengembalikan nilai hasil berupa lokasi offset yang diukur dalam satuan byte dari awal file.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -