Skip to content

Instantly share code, notes, and snippets.

@glguy

glguy/args.hs Secret

Created September 21, 2021 21:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save glguy/7a5ae553f463aa7d2c7e786180b9d085 to your computer and use it in GitHub Desktop.
Save glguy/7a5ae553f463aa7d2c7e786180b9d085 to your computer and use it in GitHub Desktop.
module Main where
import Foreign.Storable (peek)
import Foreign.Marshal.Array (peekArray0)
import Foreign.C (CInt, CString, peekCString)
import Foreign.Ptr (Ptr, nullPtr)
foreign import ccall "&rts_argv" rts_argv_p :: Ptr (Ptr CString)
foreign import ccall "&rts_argc" rts_argc_p :: Ptr CInt
main = print =<< getRTSArgs
getRTSArgs :: IO [String]
getRTSArgs =
do rts_argv <- peek rts_argv_p
ptrs <- peekArray0 nullPtr rts_argv
mapM peekCString ptrs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment