Fungsi ini adalah bagian dari pustaka stdio.h yang berguna untuk memanggil proses. Bentuk umumnya adalah :
dimana :
- *perintah adalah string yang berisi perintah yang hendak dikerjakan.
- *tipe adalah "r" untuk read-only dan "w" untuk write.
popen() memiliki nilai kembalian berupa stream pointer jika sukses dan NULL untuk error. Untuk menutup fungsi ini kita bisa gunakan perintah :
pclose(FILE *stream_pointer);
Berikut adalah contoh aplikasinya :
$ edit test_popen.c
#include <stdio.h>
main()
{
FILE *fp;
char tampil[200]; /* penampung baris-baris tampilan hasil. */
fp = popen("ls -l", "r"); /* perintah yang diberikan. */
/* pembacaan baris-baris tampilan hasil. */
while ( fgets(tampil, sizeof tampil, fp)) /* menggunakan fungsi fgets untuk mendapatkan string [tampil] dari sebuah stream [fp]*/
{
printf("%s", tampil); /* lihatlah, tipe tampil adalah string [%s] yang kita dapat dari dari stream pointer fp */
}
pclose(fp); /* penutupan */
}
$ gcc -o test_popen test_popen.c
$ ./test_popen
total 108
-rw-r–r– 1 handaru 1001 14 Jan 6 22:34 coba
-rwxr-xr-x 1 root 1001 4917 Jan 9 21:32 cobaread
-rw-r–r– 1 root 1001 343 Jan 9 21:32 cobaread.c
-rwxr-xr-x 1 handaru 1001 4734 Aug 29 14:49 hello
-rw-r–r– 1 handaru 1001 58 Aug 29 14:49 hello.c
-rw-r–r– 1 root 1001 154 Dec 19 15:21 killerror.txt
-rw-r–r– 1 root 1001 154 Dec 19 15:27 killerror2.txt
-rw-r–r– 1 root 1001 166 Dec 20 12:43 psaxgrepsendmail.txt
-rw-r–r– 1 root 1001 166 Dec 20 12:28 psaxgrepsenmail.txt
-rw-r–r– 1 root 1001 2991 Dec 20 12:27 psaxoutput.txt
-rw-r–r– 1 root 1001 5 Dec 18 15:42 psin.txt
-rw-r–r– 1 root 1001 2974 Dec 18 15:44 psoutput.txt
-rw-r–r– 1 root 1001 70 Dec 18 15:13 psoutput1.txt
-rw-r–r– 1 root 1001 2974 Dec 20 12:24 pssort.txt
-rwxr-xr-x 1 root 1001 4890 Jan 20 22:39 sistem
-rw-r–r– 1 root 1001 159 Jan 20 22:30 sistem.c
-rwxr-xr-x 1 root 1001 4915 Jan 20 23:00 sistem2
-rw-r–r– 1 root 1001 180 Jan 20 23:00 sistem2.c
-rw-r–r– 1 handaru 1001 40 Jan 16 09:04 so.txt
-rwxr-xr-x 1 handaru 1001 5571 Jan 25 19:19 tes_fork
-rw-r–r– 1 handaru 1001 738 Jan 25 19:01 tes_fork.c
-rwxr-xr-x 1 handaru 1001 4865 Jan 25 16:32 test_execl
-rw-r–r– 1 handaru 1001 103 Jan 25 16:32 test_execl.c
-rwxr-xr-x 1 handaru 1001 5361 Feb 3 13:07 test_exit
-rw-r–r– 1 handaru 1001 770 Feb 3 13:04 test_exit.c
-rwxr-xr-x 1 handaru 1001 5328 Jan 25 19:32 test_fork
-rw-r–r– 1 handaru 1001 535 Jan 28 12:22 test_fork.c
-rwxr-xr-x 1 handaru 1001 5042 Feb 9 10:12 test_popen
-rw-r–r– 1 handaru 1001 309 Feb 9 10:12 test_popen.c
-rwxr-xr-x 1 handaru 1001 5552 Jan 28 13:09 test_wait
-rw-r–r– 1 handaru 1001 582 Jan 28 13:09 test_wait.c
$
FreeBSD…masih ragu-kah dirimu ?
Dedicated for Light Intermutimedia
Perusahaan Software Pulsa
Nice blog, sangat bermanfaat nih buat aku yang masih newbie banget
…. mohon bimbangannya ya untuk mencapai tingkat pemakai FreeBSDcholic….baru nginstall seminggu yang lalu.
aku add ke blogroll aku nih blog
thanx
Regard’s
Handaru menjawab,
Silahkan, mas.
Comment by saktinasution.wordpress.com — April 11, 2008 @ 1:37 pm