Lewati navigasi

Monthly Archives: November 2008


Di dalam UNIX Command, sering dipakai tanda “|”. Tanda “|” adalah pipe, maksudnya stdout dari sebuah program dapat menjadi stdin dari program yang lain. Di dalam C, fitur ini dapat diimplementasikan dengan fungsi pipe(). Di contoh yang ada pada spesifikasi tersebut hanya menangani antara 2 proses.

#include <stdlib.h>
#include <unistd.h>

int main(){
	int fildes[2];
	const int BSIZE = 100;
	char buf[BSIZE];
	ssize_t nbytes;
	int status;
	status = pipe(fildes);
	switch (fork()) {
	case -1: /* Handle error */
	    break;

	case 0:  /* Child - reads from pipe */
	    close(fildes[1]);                       /* Write end is unused */
	    nbytes = read(fildes[0], buf, BSIZE);   /* Get data from pipe */
	    /* At this point, a further read would see end of file ... */
	    close(fildes[0]);                       /* Finished with pipe */
	    exit(EXIT_SUCCESS);

	default:  /* Parent - writes to pipe */
	    close(fildes[0]);                       /* Read end is unused */
	    write(fildes[1], "Hello world\n", 12);  /* Write data on pipe */
	    close(fildes[1]);                       /* Child will see EOF */
	    exit(EXIT_SUCCESS);
	}
}

Fungsi pipe ini akan menyambungkan input dari sebuah filedescriptor menjadi output pada filedescriptor lain. Input/output ini dibaca dengan menggunakan fungsi read() dan write().

Read More »


Sekadar buat contoh. Sebenarnya ini tugas kuliah Arsitektur dan Organisasi Komputer Lanjut.

Ternyata masih inget, hahaha.
Read More »