you need to
(1) #include <shell.h>
(2) compile/link the .c file into a .so
linked against the ksh93/ast libs:
-lshell
-lcmd
-last
On Sun, 3 Feb 2008 22:56:15 -0500 Finnbarr Murphy wrote:
> I am playing around with custom buildins for ksh93. See the following source
> file which compiles without error into a shared library libhello.so.
> #include
> int
> b_hello(int argc, char *argv[], void *extra)
> {
> if (argc != 2) {
> printf("Usage: hello arg\n");
> return(2);
> }
> printf("Hello %s\n",argv[1]);
> return(0);
> }
> int
> b_hello1(int argc, char *argv[], void *extra)
> {
> if (argc != 2) {
> printf("Usage: hello1 arg\n");
> return(2);
> }
> printf("Hello1 %s\n",argv[1]);
> return(0);
> }
> void
> lib_init(int c)
> {
> printf("LIBHELLO initialized\n");
> sh_addbuiltin("hello1", b_hello1, 0);
> }
> I load the builtins in libhello.so as follows
> $ builtin -f ./libhello.so hello
> Things works as expected if I do not call sh_addbuiltin() in lib_init() or
> elsewhere. However if I call sh_addbuiltin() my terminal session
> disappears (killed?) without any core dump.
> My questions are as follows. In lib_init() can you call sh_addbuiltin()
> to load a builtin such as hello1? The KSK-93 FAQ seems to indicate
> that this should work (Q4 - SHELL EXTENSIONS) What am I doing
> wrong which is causing sh_addbuiltin() to fail? Incorrect headers?
> Do I need to include some library I am unaware of?
> - FPMurphy
> _______________________________________________
> ast-users mailing list
> [email protected]
> https://mailman.research.att.com/mailman/listinfo/ast-users
_______________________________________________
ast-users mailing list
[email protected]
https://mailman.research.att.com/mailman/listinfo/ast-users