Next: , Previous: Sparse Matrices in Oct-Files, Up: Oct-Files


A.1.7 Accessing Global Variables in Oct-Files

Global variables allow variables in the global scope to be accessed. Global variables can easily be accessed with oct-files using the support functions get_global_value and set_global_value. get_global_value takes two arguments, the first is a string representing the variable name to obtain. The second argument is a boolean argument specifying what to do in the case that no global variable of the desired name is found. An example of the use of these two functions is

     #include <octave/oct.h>
     
     DEFUN_DLD (globaldemo, args, , "Global demo.")
     {
       int nargin = args.length ();
       octave_value retval;
     
       if (nargin != 1)
         print_usage ();
       else
         {
           std::string s = args(0).string_value ();
           if (! error_state)
             {
               octave_value tmp = get_global_value (s, true);
               if (tmp.is_defined ())
                 retval = tmp;
               else
                 retval = "Global variable not found";
     
               set_global_value ("a", 42.0);
             }
         }
       return retval;
     }

An example of its use is

     global a b
     b = 10;
     globaldemo ("b")
     ⇒ 10
     globaldemo ("c")
     ⇒ "Global variable not found"
     num2str (a)
     ⇒ 42