【问题标题】:Exit Java program when user sends EOF (either Ctrl-D or Ctrl-Z)当用户发送 EOF(Ctrl-D 或 Ctrl-Z)时退出 Java 程序
【发布时间】:2017-09-02 19:08:29
【问题描述】:

我想在循环中读取半径并在用户发送EOF (Ctrl+D / Ctrl+ Z)。

我不熟悉 Linux 和这种组合。

谁能解释一下EOF和这些命令的作用?我应该如何实现它们?

【问题讨论】:

  • 你想怎么读? read()? readLine()? Scanner?

标签: java linux


【解决方案1】:

从您的程序的角度来看,EOF 是您调用read 系统调用时的事件,通常由库执行,它返回的字节数少于请求的字节数。它没有什么特别之处。从 STDIN 或文件中读取行时也是如此。没有更多的行,你退出你的主循环。

当您点击 Ctrl+d 时,Linux VTE(虚拟终端)设备会为您的程序安排这个。

如何在 Java 中做到这一点,我不知道。我什至看不懂Java。我从来没有在样板的大海捞针中找到意义之针。 :)

【讨论】:

  • 返回比预期少的字节不是 EOF,而是短读。返回 EOF sentinel 值为 EOF,例如 read() 在 Java 中返回 -1。
  • 我指的是 Linux 上的 read 系统调用。请阅读其手册页man 2 read,然后回来解释它如何返回 EOF。我很好奇。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-03
  • 1970-01-01
  • 2011-04-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多