@@ -500,6 +500,26 @@ partial
500do_fread : Ptr -> IO String
500do_fread : Ptr -> IO String
501do_fread h = prim_fread h
501do_fread h = prim_fread h
503+fgetc : File -> IO Char
504+fgetc (FHandle h) = return (cast !(mkForeign (FFun "fgetc" [FPtr] FInt) h))
506+fflush : File -> IO ()
507+fflush (FHandle h) = mkForeign (FFun "fflush" [FPtr] FUnit) h
509+do_popen : String -> String -> IO Ptr
510+do_popen f m = mkForeign (FFun "popen" [FString, FString] FPtr) f m
512+popen : String -> Mode -> IO File
513+popen f m = do ptr <- do_popen f (modeStr m)
514+ return (FHandle ptr)
518+ modeStr ReadWrite = "r+"
520+pclose : File -> IO ()
521+pclose (FHandle h) = mkForeign (FFun "pclose" [FPtr] FUnit) h
503-- mkForeign (FFun "idris_readStr" [FPtr, FPtr] (FAny String))
523-- mkForeign (FFun "idris_readStr" [FPtr, FPtr] (FAny String))
504-- prim__vm h
524-- prim__vm h