Library that provides a bash-like command line interface for C++ programs.
Find a file
2016-05-21 18:30:50 +02:00
msh-console-library Added pipe support for threaded commands via the pipe() function. README updated. 2016-05-21 18:30:50 +02:00
.gitignore Renamed some functions and variables in SIGINT handling. README updated. Removed "using" directives in the headers. Input, output and error streams are now fields 2016-04-23 13:03:53 +02:00
license.md Created license.md licensing with the unlicense 2016-03-13 21:03:36 +01:00
README.md Added pipe support for threaded commands via the pipe() function. README updated. 2016-05-21 18:30:50 +02:00

Msh-console

Library that provides a bash-like command line for C++ programs. Features included:

  • included flag handling implemented with popt.h;
  • creation of personalized commands in the same thread of the shell or in other threads;
  • basic shell functionalities, such as execution of other programs in the system. This is implemented with execvp().
  • piping, implemented with <unistd.h> pipe() function. Code based on http://stackoverflow.com/a/5207730.

What is not actually included:

  • advanced shell features, like:
    • redirection,
    • scripting,
    • command history.

Credits

Code based on "Write a Shell in C" tutorial by Stephen Brennan (http://brennan.io/2015/01/16/write-a-shell-in-c/). The code has been slightly modified. The code contains stringtoargcargv.cpp, a set of functions written by Bernhard Eder (http://web.archive.org/web/20121030075237/http://bbgen.net/blog/2011/06/string-to-argc-argv) for parsing a string into argc and argv.

Compiling

The library can be compiled as shared library with the CMakeLists.txt file already in msh-console-library/.