Ruby  3.4.0dev (2024-11-05 revision 348a53415339076afc4a02fcd09f3ae36e9c4c61)
Macros | Functions | Variables
ruby.h File Reference

(348a53415339076afc4a02fcd09f3ae36e9c4c61)

Process-global APIs. More...

#include "ruby/internal/attr/nonnull.h"
#include "ruby/internal/dllexport.h"
#include "ruby/internal/value.h"
Include dependency graph for ruby.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define rb_argv   rb_get_argv()
 Just another name of rb_get_argv. More...
 

Functions

VALUE rb_get_argv (void)
 Queries the arguments passed to the current process that you can access from Ruby as ARGV. More...
 
void * rb_load_file (const char *file)
 Loads the given file. More...
 
void * rb_load_file_str (VALUE file)
 Identical to rb_load_file(), except it takes the argument as a Ruby's string instead of C's. More...
 

Variables

VALUE rb_argv0
 The value of $0 at process bootup. More...
 

Detailed Description

Process-global APIs.

Author
Ruby developers ruby-.nosp@m.core.nosp@m.@ruby.nosp@m.-lan.nosp@m.g.org
Warning
Symbols prefixed with either RBIMPL or rbimpl are implementation details. Don't take them as canon. They could rapidly appear then vanish. The name (path) of this header file is also an implementation detail. Do not expect it to persist at the place it is now. Developers are free to move it anywhere anytime at will.
Note
To ruby-core: remember that this header can be possibly recursively included from extension libraries written in C++. Do not expect for instance __VA_ARGS__ is always available. We assume C99 for ruby itself but we don't assume languages of extension libraries. They could be written in C++98.

Definition in file ruby.h.

Macro Definition Documentation

◆ rb_argv

#define rb_argv   rb_get_argv()

Just another name of rb_get_argv.

Definition at line 31 of file ruby.h.

Function Documentation

◆ rb_get_argv()

VALUE rb_get_argv ( void  )

Queries the arguments passed to the current process that you can access from Ruby as ARGV.

Returns
An array of strings containing arguments passed to the process.

Definition at line 14584 of file io.c.

◆ rb_load_file()

void* rb_load_file ( const char *  file)

Loads the given file.

This function opens the given pathname for reading, parses the contents as a Ruby script, and returns an opaque "node" pointer. You can then pass it to ruby_run_node() for evaluation.

Parameters
[in]fileFile name, or "-" to read from stdin.
Returns
Opaque "node" pointer.

Definition at line 2906 of file ruby.c.

◆ rb_load_file_str()

void* rb_load_file_str ( VALUE  file)

Identical to rb_load_file(), except it takes the argument as a Ruby's string instead of C's.

Parameters
[in]fileFile name, or "-" to read from stdin.
Returns
Opaque "node" pointer.

Definition at line 2913 of file ruby.c.

Referenced by rb_load_file().

Variable Documentation

◆ rb_argv0

VALUE rb_argv0
extern

The value of $0 at process bootup.

Note
This is just a snapshot of $0, not the backend storage of it. $0 could become something different because it is a writable global variable. Modifying it for instance affects ps(1) output. Don't assume they are synced.

Definition at line 1844 of file ruby.c.

Referenced by ruby_process_options().