系统编程杂谈
printf()变参函数的实现
int my_printf(const char *fmt, ...)
{
va_list args;
va_start(args, fmt);
int i;
int j=1;
char ch;
while(ch=*fmt++) {
if(ch='%') {
ch=*fmt++;
switch(ch) {
case 'c':
char ch1=va_arg(args,char);
putchar(ch1);
break;
case 's':
char *ch2=va_arg(args,char*);
puts(ch2);
break;
}
} else{
putchar(ch);
}
}
return 0;
}
makefile
拿我sh.c来举例
因为要链接动态库,所以要麻烦一些
cc = gcc //编译器
OBJ = ksh //生成的目标文件
all:
$(cc) -c ./*.c //执行并输出这些
$(cc) -o $(OBJ) ./*.o /lib64/libreadline.so.6 -I -lreadlin -lncurses -g
rm *.o //删除中间文件
clean:
rm *.o