fptr = getOpenFileChecked();
boolean locked = fptr.lock();
try {
fptr.checkCharReadable(context);
if (c.isNil()) return c;
if (c instanceof RubyFixnum) {
c = EncodingUtils.encUintChr(context, (int) ((RubyFixnum) c).getLongValue(), fptr.readEncoding(runtime));
} else if (c instanceof RubyBignum) {
c = EncodingUtils.encUintChr(context, (int) ((RubyBignum) c).getLongValue(), fptr.readEncoding(runtime));