Linux premium71.web-hosting.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64
LiteSpeed
Server IP : 198.187.29.8 & Your IP : 18.220.241.63
Domains :
Cant Read [ /etc/named.conf ]
User : cleahvkv
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
opt /
alt /
ruby33 /
include /
ruby /
internal /
intern /
Delete
Unzip
Name
Size
Permission
Date
Action
select
[ DIR ]
drwxr-xr-x
2025-02-06 11:33
array.h
25.15
KB
-rw-r--r--
2025-01-26 18:06
bignum.h
30.04
KB
-rw-r--r--
2025-01-26 18:06
class.h
15.67
KB
-rw-r--r--
2025-01-26 18:06
compar.h
2.51
KB
-rw-r--r--
2025-01-26 18:06
complex.h
8.21
KB
-rw-r--r--
2025-01-26 18:06
cont.h
11.43
KB
-rw-r--r--
2025-01-26 18:06
dir.h
1.9
KB
-rw-r--r--
2025-01-26 18:06
enum.h
2.82
KB
-rw-r--r--
2025-01-26 18:06
enumerator.h
12.13
KB
-rw-r--r--
2025-01-26 18:06
error.h
9.59
KB
-rw-r--r--
2025-01-26 18:06
eval.h
8.49
KB
-rw-r--r--
2025-01-26 18:06
file.h
9.37
KB
-rw-r--r--
2025-01-26 18:06
hash.h
11.62
KB
-rw-r--r--
2025-01-26 18:06
io.h
26.24
KB
-rw-r--r--
2025-01-26 18:06
load.h
10.42
KB
-rw-r--r--
2025-01-26 18:06
marshal.h
5.45
KB
-rw-r--r--
2025-01-26 18:06
numeric.h
7.49
KB
-rw-r--r--
2025-01-26 18:06
object.h
19.13
KB
-rw-r--r--
2025-01-26 18:06
parse.h
6.18
KB
-rw-r--r--
2025-01-26 18:06
proc.h
13.54
KB
-rw-r--r--
2025-01-26 18:06
process.h
11.3
KB
-rw-r--r--
2025-01-26 18:06
random.h
4.3
KB
-rw-r--r--
2025-01-26 18:06
range.h
3.98
KB
-rw-r--r--
2025-01-26 18:06
rational.h
6.34
KB
-rw-r--r--
2025-01-26 18:06
re.h
8.52
KB
-rw-r--r--
2025-01-26 18:06
ruby.h
2.78
KB
-rw-r--r--
2025-01-26 18:06
select.h
3.85
KB
-rw-r--r--
2025-01-26 18:06
signal.h
6.39
KB
-rw-r--r--
2025-01-26 18:06
sprintf.h
6.32
KB
-rw-r--r--
2025-01-26 18:06
string.h
67.37
KB
-rw-r--r--
2025-01-26 18:06
struct.h
8.74
KB
-rw-r--r--
2025-01-26 18:06
thread.h
18.03
KB
-rw-r--r--
2025-01-26 18:06
time.h
6.33
KB
-rw-r--r--
2025-01-26 18:06
variable.h
20.81
KB
-rw-r--r--
2025-01-26 18:06
vm.h
16.48
KB
-rw-r--r--
2025-01-26 18:06
Save
Rename
#ifndef RBIMPL_INTERN_SIGNAL_H /*-*-C++-*-vi:se ft=cpp:*/ #define RBIMPL_INTERN_SIGNAL_H /** * @file * @author Ruby developers <ruby-core@ruby-lang.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. * @brief Signal handling APIs. */ #include "ruby/internal/attr/nonnull.h" #include "ruby/internal/attr/pure.h" #include "ruby/internal/dllexport.h" #include "ruby/internal/value.h" RBIMPL_SYMBOL_EXPORT_BEGIN() /* signal.c */ RBIMPL_ATTR_NONNULL(()) /** * Sends a signal ("kills") to processes. * * The first argument is the signal, either in: * * - Numerical representation (e.g. `9`), or * - Textual representation of canonical (e.g. `:SIGKILL`) name or * abbreviated (e.g. `:KILL`) name, either in ::rb_cSymbol or ::rb_cString. * * All the remaining arguments are numerical representations of process IDs. * This function iterates over them to send the specified signal. * * You can specify both negative PIDs and negative signo to this function: * * ``` * sig \ pid | >= 1 | == 0 | == -1 | <= -2 * ===========+======+======+=======+======= * > 0 | #1 | #2 | #3 | #4 * == 0 | #5 | #6 | #7 | #8 * < 0 | #9 | #10 | #11 * ``` * * - Case #1: When signo and PID are both positive, this function sends the * specified signal to the specified process (intuitive). * * - Case #2: When signo is positive and PID is zero, this function sends * that signal to the current process group. * * - Case #3: When signo is positive and PID is -1, this function sends that * signal to everything that the current process is allowed to kill. * * - Case #4: When signo is positive and PID is negative (but not -1), this * function sends that signal to every processes in a process group, whose * process group ID is the absolute value of the passed PID. * * - Case #5: When signo is zero and PID is positive, this function just * checks for the existence of the specified process and doesn't send * anything to anyone. In case the process is absent `Errno::ESRCH` is * raised. * * - Case #6: When signo and PID are both zero, this function checks for the * existence of the current process group. And it must do. This function * is effectively a no-op then. * * - Case #7: When signo is zero and PID is -1, this function checks if there * is any other process that the current process can kill. At least init * (PID 1) must exist, so this must not fail. * * - Case #8: When signo is zero and PID is negative (but not -1), this * function checks if there is a process group whose process group ID is * the absolute value of the passed PID. In case the process group is * absent `Errno::ESRCH` is raised. * * - Case #9: When signo is negative and PID is positive, this function sends * the absolute value of the passed signo to the process group specified as * the PID. * * - Case #10: When signo is negative and PID is zero, it is highly expected * that this function sends the absolute value of the passed signo to the * current process group. Strictly speaking, IEEE Std 1003.1-2017 * specifies that this (`killpg(3posix)` with an argument of zero) is an * undefined behaviour. But no operating system is known so far that does * things differently. * * - Case #11: When signo and PID are both negative, the behaviour of this * function depends on how `killpg(3)` works. On Linux, it seems such * attempt is strictly prohibited and `Errno::EINVAL` is raised. But on * macOS, it seems it tries to to send the signal actually to the process * group. * * @note Above description is in fact different from how `kill(2)` works. * We interpret the passed arguments before passing them through to * system calls. * @param[in] argc Number of objects in `argv`. * @param[in] argv Signal, followed by target PIDs. * @exception rb_eArgError Unknown signal name. * @exception rb_eSystemCallError Various errors sending signal to processes. * @return Something numeric. The meaning of this return value is unclear. * It seems in case of #1 above, this could be the body count. But * other cases remain mysterious. */ VALUE rb_f_kill(int argc, const VALUE *argv); RBIMPL_ATTR_PURE() /** * Queries the name of the signal. It returns for instance `"KILL"` for * SIGKILL. * * @param[in] signo Signal number to query. * @retval 0 No such signal. * @retval otherwise A pointer to a static C string that is the name of * the signal. * @warning Don't free the return value. */ const char *ruby_signal_name(int signo); /** * Pretends as if there was no custom signal handler. This function sets the * signal action to SIG_DFL, then kills itself. * * @param[in] sig The signal. * @post Previous signal handler is lost. * @post Passed signal is sent to the current process. * * @internal * * @shyouhei doesn't understand the needs of this function being visible from * extension libraries. */ void ruby_default_signal(int sig); RBIMPL_SYMBOL_EXPORT_END() #endif /* RBIMPL_INTERN_SIGNAL_H */