问题标签 [stdio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
638 浏览

c++ - How to get a pointer to the beginning of a file in C++

Is it possible in C++ to somehow get a pointer to the beginning of an opened file so that it ( the pointer ) can be passed to the unix write function together with the size of the file?

Just to be clear: I want to pass the whole file to a write-like function - how do I do this?

0 投票
3 回答
792 浏览

c - remove() 打开文件是否“安全”?

我考虑在我的程序中添加对输入和输出文件使用相同文件名的可能性,以便它将替换输入文件。

由于处理后的文件可能很大,我认为最好的解决方案是首先打开文件,然后将其删除并创建一个新文件,即这样:

(当然,添加了错误处理)

我知道并非所有系统都允许我删除打开的文件,只要remove()在这种情况下会失败,这是可以接受的。

我担心如果没有任何系统允许我删除该打开的文件然后无法读取其内容。

C99 标准将这种情况下的行为指定为“实现定义的”;SUS 甚至没有提到这个案子。

你的意见/经验是什么?我需要担心吗?我应该避免这样的解决方案吗?

编辑:请注意,这不应该是一些主线功能,而是在用户指定相同文件名作为输入和输出文件的情况下的“最后手段”。

编辑:好的,还有一个问题:在这种特殊情况下,我提出的解决方案是否有可能比仅以只写方式打开输出文件(即像上面一样但没有remove()调用)做更多的坏事。

0 投票
8 回答
7834 浏览

c - 如何在 C 中刷新输入流?

我无法在这里刷新标准输入,有没有办法刷新它?如果不是,那么如何将一个字符作为用户的输入,而不是输入缓冲区中getchar()留下的“\n” ?scanf()

编辑:更新的代码,仍然无法正常工作

输出:

0 投票
6 回答
7547 浏览

python - 即时获取另一个程序的输出作为输入

我有两个以这种方式使用的程序:

c_program 使用打印一些东西printf(),python_program.py 使用读取sys.stdin.readline()

我想让 python_program.py 在打印时立即处理 c_program 的输出,以便它可以打印自己的当前输出。不幸的是,python_program.py 只有在 c_program 结束后才能得到它的输入。

我该如何解决这个问题?

0 投票
6 回答
133991 浏览

c - 在 C 中检测 EOF

我正在使用以下 C 代码从用户那里获取输入,直到 EOF 发生,但问题是这段代码不起作用,它在第一次输入后终止。谁能告诉我这段代码有什么问题。提前致谢。

0 投票
2 回答
339 浏览

linux - 检测后台操作

在 C 中,检测程序在“后台模式”中调用的方法是什么?我有一个程序我想以交互方式或在后台启动。

如何检测我不应该从标准输入读取并以“已停止:tty 输入”状态结束?

我应该测试标准输入是否关闭?我怎样才能做到这一点 ?

编辑: isatty 似乎是个好主意,但是如果 stdin 是管道端而不是 tty 会发生什么?

0 投票
3 回答
7519 浏览

c - 通过套接字获取线路

是否有一个 libc 函数可以做与 getline 相同的事情,但可以使用连接的套接字而不是 FILE * 流?

一种解决方法是在套接字上调用 fdopen。这样做时应该注意哪些事项。做/不做的理由是什么。

这样做的一个明显原因是调用 getline 和 co,但也许重写一些自定义 getline 是一个更好的主意?

0 投票
2 回答
6998 浏览

c - 关闭 FILE 指针而不关闭底层文件描述符

通过使用fdopen()fileno()可以使用现有文件描述符打开流。但是,一旦您使用流打开文件,关闭文件的正确方法是fclose()指向FILE指针。如何关闭流,但保留打开的文件描述符?

这种行为类似于调用fflush()then fileno(),然后不再使用FILE指针,除非在关闭时。另一个问题是,如果你再fdopen()一次,现在有多个FILE指针,你只能关闭其中一个。

0 投票
5 回答
1857 浏览

c - 字符 *a, *b; (ba) 是什么类型,我如何打印它?

通常有效,事实上,我无法想象它会在 32 位或 64 位机器上发出警告或失败。但是,对于 ANSI C 和尺寸意识来说,这是正确的做法吗?我希望这段代码可以在所有可能的平台上工作,包括非 Unix 和嵌入式系统。

0 投票
2 回答
5508 浏览

c++ - freopen:恢复到原始流

我需要将标准输出转发到不同的文件,以分离产生的一些打印件并恢复到正常的标准输出。

freopen以前是这样切换到文件的:

它确实有效,但在过程结束时(注意标准输出以以前相同的方式多次重定向)我无法将其恢复为原始标准输出。我尝试了以下方法:

但它似乎不起作用..只是为了我在macosx上开发的信息。

我该怎么办?

提前致谢