问题标签 [low-level-io]

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 投票
3 回答
14217 浏览

c - 如何检查文件描述符是否已关闭?

在 POSIX 环境中,当使用系统调用来操作文本文件 ( open(), close(), read(), write()) 时,有没有办法检查我在使用时是否真的关闭了文件描述符close(file_descriptor)

示例

0 投票
1 回答
93 浏览

c - 什么是“完全错误捕获”?

仅使用低级 I/O 用 C 语言编写程序。

程序必须具有完整的错误捕获。特别是程序应该使用 perror() 来报告系统错误......

在我的程序中...

如果我为每次读/写尝试实现这样的代码,这是否会被视为“完全错误捕获”?

注意test()仅用于调试,稍后将被删除:

0 投票
2 回答
8474 浏览

c - 低级 I/O - 读取/创建/写入 (C)

我正在尝试在 C 中使用低级函数并希望从 STDIN 读取并将该信息存储在文件中。

我无法理解如何访问“file.txt”来读取它以打印到屏幕或存储到另一个文件。我会只使用'read(“file.txt”,buffer,sizeof [buffer])'吗?

编辑 现在创建“file.txt”后,我想打开另一个文件,比如说file1(argv [3])并将“file.txt”转储到file1(agrv [3])中。这行得通吗?

我现在打开了两个文件,但不知道如何将“file.txt”写入 argv[3]。

0 投票
4 回答
6660 浏览

c - 如何使用低级 write() 函数将字符串写入文件?

例如,我可以将输入文件的内容写入和输出文件:

我也有一些用户输入:

我想使用 write() 将用户输入附加到同一个输出文件;

我怎样才能做到这一点?

-----更新----适用于

0 投票
1 回答
1631 浏览

c - 使用系统调用将文件的内容写入标准输出?

我了解如何打开文件并将该文件的内容写入另一个文件。我想知道如何使用低级系统调用open() write() read() close()打开文件以打开同一个文件并将其写入标准输出。这可能吗?

0 投票
1 回答
174 浏览

c - 将标准输入接受的全行写入具有低级 C i/o 的文件

我正在编写一个程序,它将标准输入中的行输入与单独的文件连接起来,并将组合文本写入输出文件。出于某种原因,当我在标准输入中键入一整行文本时,只会写入空格之前的第一个单词。我的代码有什么问题?

接受标准输入并写入:

在程序中进一步......将第二个文件写入输出:

命令行和输出:

0 投票
2 回答
1985 浏览

c - C 低级标准输入接受文件名,然后将文件内容打印到标准输出

我想通过标准输入从用户那里获取文件名,用 open() 打开文件并将其分配给文件描述符,然后将该文件的内容打印到标准输出。这是我的代码,它不能正常工作。

问题:

  1. printf("输入文件名"); 声明从未出现
  2. 它永远不会打开文件;而是将用户输入的任何内容打印到屏幕上,然后打印“没有此类文件或目录”错误消息并退出程序
  3. 程序存在后,我看到在终端提示之前打印“输入文件名”

代码:

安慰:

0 投票
2 回答
2436 浏览

c - 是什么导致我的程序挂起并且无法正常退出?(管道、读取系统调用、while 循环)

我有一个程序,我从几个子进程写入管道,然后尝试从每个管道读取写入每个进程的所有消息,并将它们打印到屏幕上。使用以下代码(特别是使用read系统调用将消息存储到缓冲区的 while 循环buf),我的程序将挂起而不退出,也不会打印发送到不同进程的所有消息。

但是,使用以下代码,程序会正确退出,但不会打印所有消息(因为它们并未全部读取):

这是我写入管道的代码:

消息是:

这是一个 9 字节的 char 数组:

解决方案

0 投票
1 回答
168 浏览

c - 为什么我的 C 程序没有打印出任何东西?

我的代码应该读取命令行上给出的 2 个文件,然后将它们打印到 STDOUT,除非给出第三个参数,在这种情况下,它应该打印到该文件而不是 STDOUT。我觉得一切都是正确的,但是当我运行程序时,什么都没有打印出来。有什么你能发现的,为什么不呢?一双新的眼睛总是有帮助的。

0 投票
1 回答
1029 浏览

linux - 在块级别/扇区级别查看文件的内容

我想知道是否有命令可以在扇区/块级别查看文件的详细信息/内容?意思是,我想要以下详细信息:我有 2 个文件。我需要知道这两个文件在块/扇区级别存储的内容是否相同?是否有命令或工具可以检查它?如果有,请以正确的方式指导我?我知道我正在比较的两个文件都在运行 linux 操作系统

额外信息:这是我的情况。我有两个图像文件。我想看看两个图像文件在块/扇区级别的内容是否相同(内核代码所在的前几个 mb)。假设两个图像文件包含 linux os,我知道两者的前几 MB 应该是相同的。所以,我做了以下操作:

  1. ls -i web-test.img -- 得到 inode 为 13

  2. 调试文件 /dev/sdb1

  3. 统计 <13> -- (ETB0): 33409

  4. dd if=/dev/sdb1 of=success.txt ibs=4096 count=1 skip =33409.o/p的内容不是clear txt.我需要看看它的内容是否相同。

简而言之,从块/扇区级别的两个文件中的图像文件(内核部分)中读取前几 mb 的数据

期待你的答复。