[19금?]vpenis.c
글쓴이: sheep / 작성시간: 토, 2004/02/21 - 10:24오전
http://tigert.gimp.org/files/screenshots/vpenis.c
위 링크에서 퍼옵니다
#include <gtk/gtk.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <errno.h>
#define PENIS_COMMAND "echo `uptime | grep days | sed 's/.*up \\([0-9]*\\) day.*/\\1\\/10+/'; \
cat /proc/cpuinfo | grep '^cpu MHz' | awk '{print $4\"/30 +\";}'; \
free | grep '^Mem' | awk '{print $3\"/1024/3+\"}'; \
df -P -k -x nfs | grep -v 1k | awk '{if ($1 ~ \"/dev/(scsi|sd)\"){ s+= $2} s+= $2;} END {print s/1024/50\"/15+70\";}'` |bc|sed 's/\\(.$\\)/.\\1/'"
static char *
calculate_vpenis_size (void)
{
char *out;
int fd;
const char *buf = PENIS_COMMAND;
unlink ("/tmp/vpenis.sh");
fd = creat ("/tmp/vpenis.sh", S_IRWXU);
if (fd < 0) {
perror ("open busted");
}
if (write (fd, buf, strlen (PENIS_COMMAND)) < 0) {
perror ("write busted");
}
close (fd);
chmod ("/tmp/vpenis.sh", 0700);
if (g_spawn_command_line_sync ("/bin/sh /tmp/vpenis.sh", &out, NULL, NULL, NULL) == FALSE)
return NULL;
unlink ("/tmp/vpenis.sh");
return out;
}
int main (int argc, char **argv)
{
GtkWidget *dialog;
char *size;
gtk_init (&argc, &argv);
size = calculate_vpenis_size ();
if (size)
{
dialog = gtk_message_dialog_new (NULL,
0, GTK_MESSAGE_INFO,
GTK_BUTTONS_CLOSE,
"Your virtual penis is long of %s centimeters.",
size);
} else {
dialog = gtk_message_dialog_new (NULL,
0, GTK_MESSAGE_INFO,
GTK_BUTTONS_CLOSE,
"We couldn't calculate your virtual penis size, it be that bad");
}
gtk_dialog_run (GTK_DIALOG (dialog));
return 0;
}
컴파일은
gcc -Wall -o vpenis `pkg-config --cflags --libs gtk+-2.0` vpenis.c
이 수치가 뭘 나타내는지 잘 모르겠네요...
제 컴에서 24.7일 때도 있고, 25.1일 때도 있네요....
Forums:

