eof是啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了eof是啥意思?相关的知识,希望对你有一定的参考价值。

EOF是一个计算机术语,为End Of File的缩写,在操作系统中表示资料源无更多的资料可读取。资料源通常称为档案或串流。通常在文本的最后存在此字符表示资料结束。

在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。

在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。

工作原理:

从一个终端的输入从来不会真的“结束”(除非设备被断开),但把从终端输入的数据分区成多个“文件”却很有用,因此一个关键的序列被保留下来来指明输入结束。

在UNIX和AmigaDOS中,将击键翻译为EOF的过程是由终端的驱动程序完成的,因此应用程序无需将终端和其它输入文件区分开来。Unix平台的驱动程序在行首传送一个传输结束字符(Control-D,ASCII编码为为04)来指明文件结束。

在AmigaDOS中,驱动程序传送一个Control-\\来指明文件结束(而Control-D被用作中断字符)。要向输入流中插入一个真正的Control-D字符,用户需要把一个“引用”命令字符放在它的前面(通常是Control-V,表示下一个字符不作为控制字符,而是按照字面量使用)。

参考技术A

EOF 本意是 End Of File,表明到了文件末尾。”EOF“通常与”<<“结合使用“<<EOF“表示后 续的输入作为子命令或子 shell 的输入,直到遇到”EOF“,再次返回到主调 shell,可将其理解为分界符(delimiter)。既然是分界符,那么形式自然不是固定的,这里可以将”EOF“可以进行自定义,但是前后的”EOF“必须成对出现且不能和 shell  命令冲突。

“内容”是啥意思:在招摇/openapi“响应”中是啥意思:

【中文标题】“内容”是啥意思:在招摇/openapi“响应”中是啥意思:【英文标题】:what does "content" : mean in swagger/openapi "responses":“内容”是什么意思:在招摇/openapi“响应”中是什么意思: 【发布时间】:2018-01-23 15:48:30 【问题描述】:

使用 Swagger/OpenAPI(以及随后的 swagger-codegen)我无法找到 应该之间的区别

这个,直接来自https://swagger.io/specification/#responsesObject (第一个例子,json格式)

"responses" : 
  "200": 
    "description": "a pet to be returned",
    "content": 
      "application/json": 
        "schema": 
          "$ref": "#/components/schemas/Pet"
    

"responses" : 
  "200": 
    "description": "a pet to be returned",
    "schema": 
      "$ref": "#/components/schemas/Pet"
  

我已将此示例放入一个简单的 json swagger 规范 (json) 并运行 Swagger-Codegen (python, flask) 以生成我的控制器和模型。 Yaml 似乎是首选的内部表示,因此当生成器运行时,它会创建一个 yaml 文件。

对于前者,响应类型为“无”

responses:
  200:
    description: "a pet to be returned"

而后者产生了我认为我应该期待的结果:

responses:
  200:
    description: "a pet to be returned"
    schema:
      $ref: "#/components/schemas/Pet"

例如,使用Content 的第一个语法似乎省略了架构

内容是什么意思? 我从示例中遗漏了什么,为什么 Content 不会导致非无返回类型和相应的架构。

关于 SwaggerCodgen 的注意事项:生成的代码与生成的 yaml 所说的完全匹配,因此我没有在此处包含任何这些细节

【问题讨论】:

【参考方案1】:

第一个示例是 OpenAPI 3.0,第二个示例是 OpenAPI 2.0,因此有所不同。

OpenAPI 3.0 中使用的 content 关键字是 OpenAPI 2.0 中 consumes/produces 的替代品。在responses 的上下文中,content 表示响应具有正文,并指定了响应正文的媒体类型(JSON/XML/等)和结构。

OpenAPI 2.0 版本:

swagger: "2.0"
...
paths:
  /foo:
    get:
      produces:
        - application/json
      responses:
        200:
          description: OK
          schema:
            $ref: "#/definitions/Pet"

OpenAPI 3.0 版本:

openapi: 3.0.0
...
paths:
  /foo:
    get:
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Pet"

codegen 问题可能是由以下任一原因引起的:

codegen 尚不支持 OpenAPI 3.0 规范无效(例如,混合使用 2.0 和 3.0 关键字)

【讨论】:

谢谢,我完全错过了。我已经赞成您的答案,一旦我可以使用代码生成器进行验证,就会将其标记为正确。在 3.0 中删除“产品”对我来说似乎更直观,所以我试图在 3.0 而不是 2.0 openapi 中执行此操作。我已经使用 swagger2openapi 将我的 swagger 规范转换为 3.0,但是在 3.0 中获取/运行 codegen 时遇到问题。它似乎在 git 中受支持,但我没有找到任何要运行的预构建 jar 或 docker 容器。 我看到了oss.sonatype.org/content/repositories/snapshots/io/swagger/…,但它失败并且似乎正在执行 2.0 (??) [main] INFO io.swagger.parser.Swagger20Parser - reading from /input/myspec.openapi3.json [main] INFO io.swagger.codegen.ignore.CodegenIgnoreProcessor - No .swagger-codegen-ignore file found. Exception in thread "main" java.lang.RuntimeException: missing swagger input or config! 我建议你在swagger-codegen repo 中打开一个问题。

以上是关于eof是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

Linux:shell script,这里的两个EOF分别是啥意思呢

c语言中feof是啥意思

while((ch=getchar())!='\n')是啥意思

fscanf(fp, %s ,str)!=EOF啥意思

PPPoE是啥意思,PPPoE是啥意思

“?”是啥意思?在 Erlang 中是啥意思? [复制]