2009ǯ10��14��
exeGCC��VLINK��ǽ�α���(2)
������exeGCC��VLINK��ǽ�����Ѥ���PARTNER�Υ��ޥ�ɥ�����ɥ���ư������Ū�ʥ��󥽡��륢�ץꥱ�������������Ҳ𤷤ޤ���������ϵդ˥Хå������������ʤ褦��VLINK�ǥ��ޥ�ɥ饤��ΰ���������������Ҳ𤷤ޤ���
���ޥ�ɥ饤����������̤�main�ؿ���argc��argv�Ǽ������뤳�Ȥ��Ǥ��ޤ���
�ʲ��Υ���ץ�ץ������ϥ��ޥ�ɥ饤�������Ϳ����줿�ե������Ϣ�뤷�Ʋ��̤�ɽ�����ޤ���unix��cat���ޥ�ɤΤ褦��ư��򤷤ޤ���
main�ؿ���argc, argv�λȤ����򸫤Ƥ���������
cat.c
#include <stdio.h> #include <stdlib.h> #include <sys/stat.h> void copy_to_stdout(char *filename) { struct stat fst; FILE* file; char* rbuf; char* rbufp; size_t bytes; size_t size; stat(filename, &fst); rbuf = (char *)malloc(fst.st_size); if((file = fopen(filename, "r")) == NULL) { exit(1); } size = fst.st_size; rbufp = rbuf; while (size > 0) { bytes = fread(rbufp, sizeof(char), size, file); if (bytes == 0 && ferror(file)) { exit(1); } size -= bytes; rbufp += bytes; } fclose(file); size = fst.st_size; rbufp = rbuf; while (size > 0) { bytes = fwrite(rbufp, sizeof(char), size, stdout); size -= bytes; rbufp += bytes; } free(rbuf); } int main(int argc, char *argv[]) { int i; for (i = 1; i < argc; i++ ) { copy_to_stdout(argv[i]); } return 0; }
ư���ǧ�Τ��ᡢa.txt �� b.txt���Ȥ���û���ƥ����ȥե��������ޤ���
C:\home\koba\vlink>type a.txt This is a.txt. C:\home\koba\vlink>type b.txt This is b.txt. C:\home\koba\vlink>
���ޥ�ɥ饤�������PARTNER��l(������)���ޥ�ɤǥ����ɤ���ե�����̾�θ�ˤĤ��ޤ���
cat.out������ɤ�����ˡ�a.txt��b.txt��2�ĤΥ��ޥ�ɥ饤��������Ϥ��Ƽ¹Ԥ����Ȥ��Υ����꡼�󥷥�åȤǤ���
ESC�����ǥ֥졼���������PARTNER�Υץ���ץȤ����ޤ���
�ޥ�������Ǽ����ȼ¹Ԥ�����Ȥ��ˤ�g���ޥ�ɤ� /w ���ץ����ȥ֥졼���ݥ���Ȥ���ꤹ��Ȥ褤�Ǥ��礦��
g���ޥ�ɤ��̾�ϥ������åȥץ������μ¹Ԥ���Ʊ���Ǽ��Υץ���ץȤ�Ф��ޤ�����/w���ץ�����Ĥ���ȥ������åȥץ�����ब�֥졼������Τ��ԤäƤ��鼡�Υץ���ץȤ�Ф��ޤ���
> g /w _exit
���Τ褦�ˤ���ȡ�_exit�Ȥ����ؿ�����Ƭ�ޤǼ¹Ԥ��ƥ֥졼�����Ƥ��鼡�Υץ���ץȤ��Фޤ���
��������μ���Υƥ��ȥץ�������ޥ����ǰ쵤�˼¹Ԥ���Τ������Ǥ���
ư��Υǥ�������ȯ���Ƥ������ˤ��ȡ�VLINK�Τ�����ˡ��Ȥä�PC����֤��Ƥ���¿����ư��ե�������ɤ߹���Ǻ�������ƥ��ȥץ�����ब��ñ�˺�줿�����Ǥ���