content: {-# OPTIONS_JHC -fno-prelude -fffi #-}
  module System.C.Stdio where
  
  import Jhc.Basics
  import Jhc.Type.C
  import Jhc.Type.Ptr
  
  type FILE = Ptr CFile
  
  foreign import ccall "stdio.h fopen" c_fopen               :: Ptr CChar -> Ptr CChar -> IO FILE
  foreign import ccall "stdio.h popen" c_popen               :: Ptr CChar -> Ptr CChar -> IO FILE
  foreign import ccall "stdio.h fclose" c_fclose             :: FILE -> IO CInt
  foreign import ccall "stdio.h pclose" c_pclose             :: FILE -> IO CInt
  foreign import ccall "stdio.h jhc_utf8_putchar" c_putwchar :: Int -> IO ()
  foreign import ccall "wchar.h jhc_utf8_getc" c_fgetwc      :: FILE -> IO Int
  foreign import ccall "wchar.h jhc_utf8_getchar" c_getwchar :: IO Int
  foreign import ccall "wchar.h jhc_utf8_putc" c_fputwc      :: Int -> FILE -> IO Int
  foreign import ccall "stdio.h fwrite" c_fwrite             :: Ptr a -> CSize -> CSize -> FILE -> IO CSize
  foreign import ccall "stdio.h fread" c_fread               :: Ptr a -> CSize -> CSize -> FILE -> IO CSize
  foreign import ccall "stdio.h fflush" c_fflush             :: FILE -> IO ()
  foreign import ccall "stdio.h feof" c_feof                 :: FILE -> IO Int
  foreign import ccall "stdio.h ftell" c_ftell               :: FILE -> IO IntMax
  foreign import ccall "stdio.h fseek" c_fseek               :: FILE -> IntMax -> CInt -> IO Int
  foreign import ccall "stdio.h fileno" c_fileno             :: FILE -> IO Int
  foreign import primitive "const.SEEK_SET" c_SEEK_SET :: CInt
  foreign import primitive "const.SEEK_CUR" c_SEEK_CUR :: CInt
  foreign import primitive "const.SEEK_END" c_SEEK_END :: CInt
  foreign import primitive "const._IOFBF" c__IOFBF :: CInt
  foreign import primitive "const._IOLBF" c__IOLBF :: CInt
  foreign import primitive "const._IONBF" c__IONBF :: CInt
  