31 lines
		
	
	
		
			495 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			495 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| //
 | |
| // fdistream.cpp
 | |
| // libscio
 | |
| //
 | |
| // Created by Bob Polis at 2020-02-14
 | |
| // Copyright (c) 2020 SwiftCoder. All rights reserved.
 | |
| //
 | |
| 
 | |
| #include "libscio.hpp"
 | |
| 
 | |
| #ifdef _MSC_VER
 | |
| 	#include <io.h>
 | |
| #else
 | |
| 	#include <unistd.h>
 | |
| #endif
 | |
| 
 | |
| using namespace sc::io;
 | |
| 
 | |
| std::streambuf::int_type fdinbuf::underflow() {
 | |
| 	int num = read(_fd, &_ch, 1);
 | |
| 	if (num <= 0) {
 | |
| 		return EOF;
 | |
| 	}
 | |
| 	setg(&_ch, &_ch, &_ch + 1);
 | |
| 	return _ch;
 | |
| }
 | |
| 
 | |
| std::streamsize fdinbuf::xsgetn(char* s, std::streamsize n) {
 | |
| 	return read(_fd, s, n);
 | |
| }
 | 
