研究日誌。

大規模なグラフ処理に対してメモリ階層構造を考慮した高性能なソフトウェアを開発。

interactive shell - その2

2010-07-13 19:10:27 | Weblog
端末のような interface を作る上で readline を使わない手はない。readline の存在を知ってはいたものの、使用するのはこれが初めてである。 コンパイル時に -lreadline -lcurses の指定が必要である。

以下、ソースの抜粋。
#include <readline/readline.h>
#include <readline/history.h>

char *readline(const char *prompt);
void add_history(const char *line); void clear_history(void);
int
num_hist = 0; char *line = NULL, buf[MAX_BUF_SIZE]; while ( (line = readline("spsh> ")) ) {
  add_history(line); if (++num_hist > MAX_HIST_SIZE) {
    free( remove_history(0) ); --num_hist; }
  strcpy(buf, line); free(line); /* use buf */
}