@@ -70,15 +70,17 @@ elif MACOS:
7070 declare global __stdinp: FILE*
7171 declare global __stdoutp: FILE*
7272 declare global __stderrp: FILE*
73+ elif LINUX:
74+ declare global stdin: FILE*
75+ declare global stdout: FILE*
76+ declare global stderr: FILE*
7377elif NETBSD:
7478 if IS_32BIT:
7579 declare global __sF: byte[88][3] # sizeof(FILE) == 88
7680 else:
7781 declare global __sF: byte[152][3] # sizeof(FILE) == 152
7882else:
79- declare global stdin: FILE*
80- declare global stdout: FILE*
81- declare global stderr: FILE*
83+ assert False # unsupported system
8284
8385# Returns stdin, the special file for reading keyboard input from terminal.
8486@public
@@ -87,10 +89,12 @@ def get_stdin() -> FILE*:
8789 return __acrt_iob_func(0)
8890 elif MACOS:
8991 return __stdinp
92+ elif LINUX:
93+ return stdin
9094 elif NETBSD:
9195 return &__sF[0] as FILE*
9296 else:
93- return stdin
97+ assert False
9498
9599# Returns stdout, the special file for printing to terminal.
96100@public
@@ -99,10 +103,12 @@ def get_stdout() -> FILE*:
99103 return __acrt_iob_func(1)
100104 elif MACOS:
101105 return __stdoutp
106+ elif LINUX:
107+ return stdout
102108 elif NETBSD:
103109 return &__sF[1] as FILE*
104110 else:
105- return stdout
111+ assert False
106112
107113# Returns stderr, the special file for showing error and warning messages.
108114#
@@ -117,10 +123,12 @@ def get_stderr() -> FILE*:
117123 return __acrt_iob_func(2)
118124 elif MACOS:
119125 return __stderrp
126+ elif LINUX:
127+ return stderr
120128 elif NETBSD:
121129 return &__sF[2] as FILE*
122130 else:
123- return stderr
131+ assert False
124132
125133# Open/close a file for reading or writing. Mode can be e.g. "r", "w",
126134# "a", "rb", "wb" or "ab". The meanings of these modes are as in many
0 commit comments