Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. MODULE HW;
  2.  
  3. IMPORT SYSTEM, Libdl, Args;
  4.  
  5.  
  6. VAR
  7.  
  8.     libc: INTEGER;
  9.     puts: PROCEDURE [linux] (pStr: INTEGER);
  10.  
  11.  
  12. PROCEDURE OutStringLn (s: ARRAY OF CHAR);
  13. BEGIN
  14.     puts(SYSTEM.ADR(s[0]))
  15. END OutStringLn;
  16.  
  17.  
  18. PROCEDURE main;
  19. VAR
  20.     i: INTEGER;
  21.     s: ARRAY 80 OF CHAR;
  22.  
  23. BEGIN
  24.     OutStringLn("Hello");
  25.  
  26.     OutStringLn("");
  27.     i := 0;
  28.     WHILE i < Args.argc DO
  29.         Args.GetArg(i, s);
  30.         INC(i);
  31.         OutStringLn(s)
  32.     END;
  33.  
  34.     OutStringLn("");
  35.     i := 0;
  36.     WHILE i < Args.envc DO
  37.         Args.GetEnv(i, s);
  38.         INC(i);
  39.         OutStringLn(s)
  40.     END;
  41.     OutStringLn("");
  42.  
  43.     OutStringLn("Bye")
  44. END main;
  45.  
  46.  
  47. BEGIN
  48.     libc := Libdl.open("libc.so.6", Libdl.LAZY);
  49.     SYSTEM.PUT(SYSTEM.ADR(puts), Libdl.sym(libc, "puts"));
  50.     ASSERT(puts # NIL);
  51.     main
  52. END HW.
  53.