RubyString filename = get_path(runtime.getCurrentContext(), args[0]);
path = adjustRootPathOnWindows(runtime, filename.asJavaString(), runtime.getCurrentDirectory());
String modeString;
IOOptions modes;
int perm;
if ((args.length > 1 && args[1] instanceof RubyFixnum) || (args.length > 2 && !args[2].isNil())) {
modes = parseIOOptions(args[1]);
perm = getFilePermissions(args);
sysopenInternal(path, modes.getModeFlags(), perm);
} else {
modeString = "r";
if (args.length > 1 && !args[1].isNil()) {
modeString = args[1].convertToString().toString();
}