Linux�µı�IO����ܲ�����,���������������ҷ�������ƶ����,�źܶ�ʱ������ܴ������,�����������Լ���shell��ʱ��ͱ�����ѵ���,������ô����������������,�������˺ܾ�,�ҵ�������ö���,readline��,������ʵ�����ҷ�����ƶ����,���·�����鿴��ʷ����,tab����ȫ�Ĺ���,�����Ҿ����̴�����ʹ�������.
����,��װ��:
sudo apt-get install libreadline6-dev
sudo apt-get install lib64readline6
�ҵ�ubuntu�����������װ��,centosϵ���ǰ�apt-get����yum,����İ�����ȷ��,���϶�ʱreadline��ͷ,����tab��,���IJ���.
װ��֮����Ҫȷ����/usr/include/readline���Ŀ¼.
Ȼ����ldconfig -p | grep readline������ȷ��������.so�ļ�λ��,��/lib64�µ�.
����╼[~]
��╼ ldconfig -p | grep readline
libreadline.so.6 (libc6,x86-64) => /lib/x86_64-linux-gnu/libreadline.so.6
libreadline.so.6 (libc6,x86-64) => /lib64/libreadline.so.6
libreadline.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libreadline.so
libguilereadline-v-18.so.18 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libguilereadline-v-18.so.18
libguilereadline-v-18.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libguilereadline-v-18.so
#include <stdio.h>
#include <readline/readline.h>
#include <readline/history.h>
char *readline (const char *prompt);
������������,��Ҫinclude����.h�ļ�,prompt��������Ҫ�������ʾ��Ϣ,�����ص�ʱchar* �͵�.
Ȼ�����Ҹ���ʾ����.
#include<stdio.h>
#include<readline/readline.h>
#include<readline/history.h>
int main()
{
char *line;
while(1) {
line = readline(">>");
puts(line);
if(*line) {
add_history(line);
}
free(line);
}
return 0;
}
add_history()����������������ʷ��¼��!
Ȼ��,�������ı���ͦ����,��ô��ֱ��дmakefile��
cc = gcc
OBJ = ksh
all:
$(cc) -c ./1.3.c
$(cc) -o $(OBJ) ./1.3.o /lib64/libreadline.so.6 -I -lreadlin -lncurses -g
rm *.o
clean:
rm *.o
����,���shell�Ѿ��൱˧����!
�������ø��µ�ַ��//m.ajphoenix.com/linux/30716.html