FILE *
背后其实是一个文件描述符
FILE *
vprintf 系列
stdarg.h
的参数列表int vfprintf(FILE *stream, const char *format, va_list ap);
int vasprintf(char **ret, const char *format, va_list ap);
我们在游戏修改器中使用了它
高情商 API (现代编程语言)
subprocess.check_output(['cat'],
input=b'Hello World', stderr=subprocess.STDOUT)
let dir_checksum = {
Exec::shell("find . -type f")
| Exec::cmd("sort") | Exec::cmd("sha1sum")
}.capture()?.stdout_str();
所有 API 都可能失败
$ gcc nonexist.c
gcc: error: nonexist.c: No such file or directory
这个 “No such file or directory” 似乎见得有点多?
cat nonexist.c, wc nonexist.c
都是同样的 error messagewarn("%s", fname);
(观察 strace)err
可以额外退出程序我们也可以实现自己的 env.c