Maintenance Ruby 3.4 gets fixes, but no new features. Switch to Ruby 4.0 →
instance method
Process::Status#&
(::Integer num) -> ::Integer
stat & mask → integer
process.c
View on GitHub ↗
static VALUE
pst_bitand(VALUE st1, VALUE st2)
{
int status = PST2INT(st1);
int mask = NUM2INT(st2);
if (mask < 0) {
rb_raise(rb_eArgError, "negative mask value: %d", mask);
}
#define WARN_SUGGEST(suggest) \
rb_warn_deprecated_to_remove_at(3.5, "Process::Status#&", suggest)
switch (mask) {
case 0x80:
WARN_SUGGEST("Process::Status#coredump?");
break;
case 0x7f:
WARN_SUGGEST("Process::Status#signaled? or Process::Status#termsig");
break;
case 0xff:
WARN_SUGGEST("Process::Status#exited?, Process::Status#stopped? or Process::Status#coredump?");
break;
case 0xff00:
WARN_SUGGEST("Process::Status#exitstatus or Process::Status#stopsig");
break;
default:
WARN_SUGGEST("other Process::Status predicates");
break;
}
#undef WARN_SUGGEST
status &= mask;
return INT2NUM(status);
}
This method is deprecated as to_i value is system-specific; use predicate methods like exited? or stopped?, or getters like exitstatus or stopsig.
Returns the logical AND of the value of to_i with mask:
Example
`cat /nop` stat = $? # => #<Process::Status: pid 1155508 exit 1> sprintf('%x', stat.to_i) # => "100" stat & 0x00 # => 0
ArgumentError is raised if mask is negative.
Ruby version changes
-
3.3
-
Process::Status#&andProcess::Status#>>are deprecated. [Bug #19868]
-