Ruby: include/ruby/internal/intern/ruby.h File Reference

Ruby 3.4.1p0 (2024-12-25 revision 48d4efcb85000e1ebae42004e963b5d0cedddcf2)

Macros | Functions | Variables
ruby.h File Reference

Process-global APIs. More...

`#include "ruby/internal/attr/nonnull.h"`
`#include "ruby/internal/dllexport.h"`
`#include "ruby/internal/value.h"`

Go to the source code of this file.

## Macros
#define | rb_argv rb_get_argv()
| Just another name of rb_get_argv.

## Functions
VALUE | rb_get_argv (void)
| Queries the arguments passed to the current process that you can access from Ruby as `ARGV`.
void * | rb_load_file (const char *file)
| Loads the given file.
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.

## Variables
VALUE | rb_argv0
| The value of `$0` at process bootup.

## Detailed Description

Process-global APIs.

Author
  Ruby developers ruby-.nosp@m.core.nosp@m.@ruby.nosp@m.-lan.nosp@m.g.org

Copyright
  This file is a part of the programming language Ruby. Permission is hereby granted, to either redistribute and/or modify this file, provided that the conditions mentioned in the file COPYING are met. Consult the file for details.

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.

Referenced by ruby_prog_init(), and ruby_set_argv().

## 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 14621 of file io.c.

Referenced by rb_get_argv().

## ◆ 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] | file | File name, or "-" to read from stdin.

Returns
  Opaque "node" pointer.

Definition at line 2920 of file ruby.c.

Referenced by rb_load_file().

## ◆ 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] | file | File name, or "-" to read from stdin.

Returns
  Opaque "node" pointer.

Definition at line 2927 of file ruby.c.

Referenced by rb_load_file(), and rb_load_file_str().

## 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 1848 of file ruby.c.

Referenced by ruby_process_options().