从标准输入读取

2024-01-05

使用读取用户输入的可能方法有哪些read()Unix 中的系统调用。我们如何使用从 stdin 逐字节读取read()?


你可以这样做来读取 10 个字节:

char buffer[10];
read(STDIN_FILENO, buffer, 10);

记住read() http://pubs.opengroup.org/onlinepubs/009695399/functions/read.html不添加'\0'终止以使其成为字符串(仅提供原始缓冲区)。

一次读取 1 个字节:

char ch;
while(read(STDIN_FILENO, &ch, 1) > 0)
{
 //do stuff
}

并且不要忘记#include <unistd.h>, STDIN_FILENO在此文件中定义为宏。

共有三个标准 POSIX 文件描述符,对应于三个标准流,大概每个进程都应该拥有:

Integer value   Name
       0        Standard input (stdin)
       1        Standard output (stdout)
       2        Standard error (stderr)

所以与其STDIN_FILENO你可以使用0。

Edit:
在 Linux 系统中,您可以使用以下命令找到它:

$ sudo grep 'STDIN_FILENO' /usr/include/* -R | grep 'define'
/usr/include/unistd.h:#define   STDIN_FILENO    0   /* Standard input.  */

注意评论/* Standard input. */

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从标准输入读取 的相关文章

  • 为什么 std::vector 可以处理类定义中的不完整类型?

    出现了以下问题 C 标准似乎说 std vector需要一个完整的类型才能工作 看https en cppreference com w cpp container vector https en cppreference com w cp
  • 如何使用不同的基本路径托管 Blazor WebAssembly 应用程序

    我有一个 Blazor Webassemble NET 托管应用程序 在我们托管它的服务器上 应用程序的基本路径将是mydomain com coolapp 因此 为了尝试让应用程序在服务器上正确呈现 我一直遵循本页 应用程序基本路径 部分
  • copy_from_user() 错误:目标大小太小

    我正在为内核模块编写 ioctl 处理程序 我想从用户空间复制数据 当我编译禁用优化的代码时 O0 gflags 编译器返回以下错误 include linux thread info h 136 17 error call to bad
  • 来自 double 的 static_cast 可以优化分配给 double 吗?

    我偶然发现了一个我认为不必要的功能 并且通常让我感到害怕 float coerceToFloat double x volatile float y static cast
  • 如何在 C++ 中为指针“this”赋值

    在函数中 如何分配this一个新的价值 您可以分配对象this点于 this XY 但你不能分配直接值this this XY Error Expression is not assignable
  • 每个元素的 asp.net Web 表单自定义错误消息

    我创建了一个 Web 应用程序 表单 以及后端 SQL 插入和查询 目前我正在显示所有用户错误消息 div style padding 1em div
  • 从结构调用 C++ 成员函数指针

    我找到了有关调用 C 成员函数指针和调用结构中的指针的信息 但我需要调用结构内部存在的成员函数指针 但我无法获得正确的语法 我在类 MyClass 的方法中有以下代码片段 void MyClass run struct int MyClas
  • 我担心我添加了太多接口

    我正在构建我的领域模型并继续重构它 正如我所做的那样 我发现我喜欢接口 因为它允许我根据接口为具体类型创建可重用的方法 控制器 视图 但是 我发现每次向域实体之一添加新属性时 我都会创建一个接口 例如 我有一个会员状态从抽象继承的对象Ent
  • 维护 VS Test Project 中单元测试方法之间的上下文

    我想按顺序运行以下单元测试 使用随机数字的名称 密码等创建新客户 检索刚刚创建的客户并断言其属性包含相同的随机数 对同一用户调用 ForgotPassword 函数 并使用相同的随机数作为用户名 清楚地看到 我需要生成一次随机数 并在 3
  • 使用 STL 流时如何格式化我自己的对象?

    我想将我自己的对象输出到 STL 流 但具有自定义格式 我想出了这样的东西 但由于我之前从未使用过 locale 和 imbue 所以我不知道这是否有意义以及如何实现 MyFacet 和operator 所以我的问题是 这是否有意义以及如何
  • 当我尝试传递临时地址作为参数时,它是一个 UB 吗?

    对于以下 C 代码 include
  • 为什么连续抛出 2 个异常不会生成无法访问的代码警告?

    为什么以下代码行不会创建编译器警告 void Main throw new Exception throw new Exception 据我所知 编译器应该通知您无法到达第二个抛出异常 这显然是一个编译器错误 它是在 C 3 0 中引入的
  • C# 可以为控制台应用程序部分类“程序”类吗?

    我想知道是否可以将为任何控制台应用程序创建的默认 程序 类更改为部分类 我想这样做是因为我想要更好的组织 而不是将所有方法都放在按区域分类的 1 个文件中 对我来说 将某些方法类别放在单独的文件中会更有意义 我对分部类的理解是 它是多个文件
  • main.cpp 是必需的吗?

    我试图编译一个程序cmake 我最终删除了我的main cpp文件 我刚刚将其复合到另一个包含我的项目名称的文件中 即 我刚刚将主函数剪切并粘贴到该文件中 问题是我有一个main cpp未发现错误 不确定是否在C 一个名为main cpp是
  • 如何在Windows窗体中打开进程

    我想在我的 Windows 窗体应用程序中打开进程 例如 我希望当用户按下 Windows 窗体容器之一中的按钮时 mstsc exe 将打开 如果他按下按钮 它将在另一个容器上打开 IE DllImport user32 dll SetL
  • 如何在VS2005中使用从.bat而不是.exe启动的外部程序进行调试?

    在我的 c 项目的调试属性中 我选择了 启动外部程序 并选择了我希望将调试器附加到的程序的 exe 但是 现在我需要从 bat 文件而不是 exe 启动程序 但 VS2005 似乎不允许这样做 这可能吗 编辑 为了澄清 我需要调试从 bat
  • 具有多个父项的 Qt 树模型

    我想构建一棵树 其中一个元素可以引用另一个元素 我想要构建的树是 像这样的东西 A B C D E F P this is a pointer to C D first child of C E second child of C I fo
  • 查找数组中的多个索引

    假设我有一个像这样的数组 string fruits watermelon apple apple kiwi pear banana 是否有一个内置函数可以让我查询 apple 的所有索引 例如 fruits FindAllIndex ap
  • 尝试后终于没有被调用

    由于某种原因 在我的控制台应用程序中 我无法运行我的finally 块 我编写这段代码是为了测试finally块是如何工作的 所以它非常简单 static void Main int i 0 try int j 1 i Generate a
  • C++ 中的析构函数

    我的 AB h 文件中有一个构造函数 class AB private int i public AB i 0 constructor AB i 0 destructor virtual void methodA unsigned int

随机推荐

  • 如何在VS2010中创建新的项目类型?

    我已经弄清楚如何创建一个新的template 但我需要比这多一点的力量 例如 我需要覆盖当您单击 运行 按钮时发生的情况 我希望它启动开发服务器 然后弹出打开我的网络浏览器 那么 如何添加全新的项目类型呢 更好的是 我如何才能将其基于其他项
  • WordPress has_comments 不起作用

    我在 WordPress 中设置了 comment 条件 这个条件是在 comments php 中设置的 就像 wordpress 默认主题一样 然后使用comment template加载整个comments php文件 现在 当我删除
  • 如何设置UnderlineSpan的颜色?

    这个问题是我上一个问题的后续问题 如何像 Android 拼写检查器一样突出显示文本 https stackoverflow com questions 14530546 how to highlight text like android
  • 减少大数据集 DOM 元素的策略

    我有一个大型数据集 想使用 dc js 显示 条目数量远远超出了屏幕上可用的绘图空间 以像素为单位 因此 在 500 像素宽的图表上渲染 20k 点是没有意义的 而且还会降低浏览器的速度 我读了维基百科的性能柚木部分 https githu
  • 在 GitHub 操作中检索已修改文件的列表

    我目前正在使用foo 软件 lighthouse check action https github com foo software lighthouse check action自动完成审核 但自从urls必须进行硬编码 当只想审核提交
  • MySQL 5 星级数据类型?

    对于必须介于 1 和 5 之间的产品评级 ENUM 1 2 3 4 5 是否是一个合理的数据类型 Thanks 是的 这将是一个合适的数据类型 因为它强制执行您的域 但是 如果您要将它们相加 或进行任何其他数学运算 那么数字数据类型可能会更
  • 导入错误:没有名为“spacy.en”的模块

    我正在开发一个使用 Spacy 的代码库 我使用以下命令安装了 spacy sudo pip3 install spacy 进而 sudo python3 m spacy download en 在最后一个命令结束时 我收到一条消息 Lin
  • 在junit中使用@rule检查错误代码

    I found Rule中的注释jUnit为了更好地处理异常 有没有办法检查错误代码 目前我的代码看起来像 没有 Rule Test public void checkNullObject MyClass myClass null try
  • Ruby Net::SFTP 的公钥/私钥身份验证

    我无法找到用于指定 SFTP 身份验证密钥的文档 想要有类似的东西 export SOME PRIVATE KEY cat tmp some certs privatekey pem then somewhere in the code p
  • 无法在模拟器中运行应用程序:运行时遇到错误(域 = LaunchServicesError,代码 = 0)

    在配置配置文件出现问题后 我无法在模拟器中运行我的应用程序 我正在 Xcode 6 beta 4 中进行快速编码 在证书配置文件出现问题之前 这一切都很好 我尝试过清理构建 检查 xCode6 beta4 的命令行是否运行 检查了构建部署
  • jQuery(反)模式:使用字符串操作构建选择器

    我经常发现自己使用字符串操作 拆分 搜索 替换 连接 连接 来构建选择器 是好是坏 这有什么问题吗 有什么替代方案 只是将它们硬编码为单个字符串 但是您可以在网站上使用约定来组织布局 如果您只是在一个地方定义选择器组件 并使用它来构建选择器
  • 使用 monotouch 在 ios 中自定义自动完成选项列表

    我希望能够为在 Monotouch 中创建的 ios 应用程序中的文本输入提供我自己的可用自动更正 自动完成选项列表 单词列表通过网络服务进行更新 完成搜索时 可以在 Ebay 应用程序中看到此类功能的示例 实现这一目标的最佳方法是什么 您
  • 演示与基于类的模型相关的 Javascript 继承优势

    谁能提供一个具体的示例来展示 Javascript 的原型继承 以说明何时使用传统的基于类 经典 模型是有益的 我见过的其他问题 例如经典继承与原型继承 https stackoverflow com questions 1450582 c
  • 如何使用反射来调节多个属性以检查 LINQ .Where 语句中的相等性,具体取决于传递的类?

    我试图概括一个重复检查器函数 该函数根据对象的类型 检查所述类具有的属性 在配置中提供 是否等于另一个列表中的属性 我决定创建一个字典 它将接受键的类型字符串 书籍 作者 商店等 和需要相等的属性数组 字典条目示例 Book Title C
  • 在 IE 和 JSFiddle 中使用 elem.dataset 时出现问题

    在我在 Chrome 上创建的 JSFiddle 中 我发现它无法在 IE 上工作 我使用的是 IE9 任何与此相关的原因 http jsfiddle net ZSB67 http jsfiddle net ZSB67 var backIm
  • UIView 对象的唯一标识符

    我遇到以下问题 当 UIVIew 上发生某种触摸时 我想存储这个 UIView唯一标识符 比如 objectID 这样当我再次重新打开我的应用程序时 我可以检查可见的 UIView 中是否存在具有存储中唯一 ID 的 UIView 我不想将
  • 使用 PlayFramework 多重上传文件

    我尝试使用 Play Framework 一次上传多个文件 但我总是获得每个上传的第一个图像 这是一个具体案例 HTML
  • 动态壁纸和扩展背景

    我正在尝试创建一个动态壁纸 其动画始终位于当前主屏幕页面的中心 而不会丢失扩展背景 我现在正在做的是绘制自定义背景位图 然后在其上绘制一些文本 这是我的并条方法 final SurfaceHolder holder getSurfaceHo
  • merge --squash 和 rebase 有什么区别?

    我试图理解壁球和变基之间的区别 据我了解 在进行变基时会执行挤压 Merge commits retains all of the commits in your branch and interleaves them with commi
  • 从标准输入读取

    使用读取用户输入的可能方法有哪些read Unix 中的系统调用 我们如何使用从 stdin 逐字节读取read 你可以这样做来读取 10 个字节 char buffer 10 read STDIN FILENO buffer 10 记住r