首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

无法在SBCL sb-ext:run-program中获取输入流

在SBCL中,使用sb-ext:run-program函数无法直接获取输入流。sb-ext:run-program是一个用于在子进程中运行外部程序的函数,它可以指定子进程的标准输入、标准输出和标准错误流。然而,它并没有提供直接获取输入流的功能。

要在SBCL中获取输入流,可以使用其他方法。一种常见的方法是使用Common Lisp的标准输入流 standard-inputstandard-input是一个全局变量,它表示当前进程的标准输入流。可以使用read函数从标准输入流中读取数据。

以下是一个示例代码,演示如何在SBCL中获取输入流:

代码语言:lisp
复制
(defun get-input-stream ()
  *standard-input*)

(defun read-input ()
  (let ((input-stream (get-input-stream)))
    (read-line input-stream)))

(defun main ()
  (format t "请输入一行文本:")
  (force-output)
  (let ((input (read-input)))
    (format t "你输入的是:~a~%" input)))

(main)

在上述示例中,get-input-stream函数返回了当前进程的标准输入流。read-input函数使用get-input-stream函数获取输入流,并使用read-line函数从输入流中读取一行文本。main函数则演示了如何使用read-input函数获取用户输入,并将其打印出来。

这是一个简单的示例,你可以根据实际需求进行扩展和修改。希望对你有帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Emacs 折腾记

我使用网友们力荐的 Emacs + slime + sbcl 的组合,配置步骤如下: 去 http://www.sbcl.org/ 下载安装 sbcl 的最新版。... ~/.emacs 文件里添加: 这样自动补全之类的就没有问题了。 然后如何运行当前 py 文件这件事上遇到些问题。 Vim 我一直是用 :!...python % 来运行的,但是 Emacs 里,包括 Evil、eshell、shell 里,如果有等待用户输入的语句如 input 或 raw_input 等,因为 Emacs 只重定向了输出,无法重定向输入...配置这个倒是简单,安装 Markdown-mode 插件,然后 ~/.emacs 添加: (autoload 'markdown-mode "markdown-mode" "Major mode... ~/.emacs 文件添加 这个 3 表示距离屏幕上下边缘还有 3 行的时候再移动光标即自动滚屏,方便随时能看到当前编辑行的上下文,可以根据自己的使用习惯调整。

1.3K20
  • C语言-文件操作

    由于二进制文件不以人类可读的形式存储数据,它们无法直接用文本编辑器打开和阅读。 C语言中,处理二进制文件需要使用fread和fwrite等函数,这些函数可以直接读取和写入二进制数据。...这时候就涉及到了上文所讲述的数据文件的存储方式,将内容简化为文字就是下图所示(以10000为例): 当放入10000时实际上放入的是10011100010000这个二进制序列,二进制文件显示的是十六进制的数字序列...以上就是关于运行代码VS的二进制文件的相关知识。 3....我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的⼊输出操作各不相同,为了⽅便程序员对各种设备进行方便的操作,我们抽象出了流的概念,我们可以把流想象成流淌着字符的河。...标准输入流(stdin):标准输入流用于从程序外部读取数据,通常与键盘输入相关联。当你使用scanf等函数读取用户输入时,实际上是从标准输入流读取数据。

    8510

    C语言文件操作

    我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的⼊输出 操作各不相同,为了⽅便程序员对各种设备进⾏⽅便的操作,我们抽象出了流的概念,我们可以把流 想象成流淌着字符的河。...fgetc和fputc fgetc是从流获取字符(Fgetc和getc是等价的,除了getc可以某些库作为宏实现。) fputs则是将一个字符写入流并推进位置指示器。...fgets和fputs fgets从流获取字符串并将其作为C字符串存储到str,直到读取(num-1)个字符,或者到达换行符或文件结束符,以先发生的为准。...fputs将字符串写入流函数从指定的地址(str)开始复制,直到到达结束的空字符('\0')。这个终止的空字符不会复制到流。...4.2ftell 返回文件指针相对于起始位置的偏移量 获取的当前位置 返回流的位置指示器的当前值。

    5210

    C语言 文件操作

    什么时文件        文件用于保存数据,可以做到数据持久化的保存         磁盘上的文件就是文件 但是程序设计,文件一般分为两种,程序文件和数据文件         程序文件...数据文件,字符用ASCLL形式存储,数值型的数据可以用ASCLL存储也可以用二进制形式储存....C程序针对⽂件、画⾯、键盘等的数据⼊输出操作都是通过流操作的。 ⼀般情况下,我们要想向流⾥写数据,或者从流读取数据,都是要打开流,然后操作。         ...标准流          C语言程序启动的时候,默认打开 stdin stdout stderr三个流,分别是标准输入流,标准流, 标准错误流.        ...stdin,由键盘输入 scanf就是从标准输入流读取数据         stdout标准输出流,大多数的环境输出给显示器,printf就是输出         stderr输出到显示器

    8810

    C语言:文件操作详解

    二、什么是文件 2.1 文件的分类      磁盘(硬盘上)的文件就叫做文件,程序设计,文件一般分为两种:程序文件、数据文件。...4.1 流 我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的⼊输出操作各不相同,为了方便程序员对各种设备进⾏⽅便的操作,我们抽象出了流的概念,我们可以把流想象成流淌着字符的河...因为C语言程序启动的时候,默认打开了3个流: • stdin - 标准⼊流,⼤多数的环境从键盘⼊,scanf函数就是从标准⼊流读取数据。...:可变参数列表 Read formatted data from string:字符串读取一个格式化的数据        对比一下参数,共同点都是读取一个格式化的数据,不同的是scanf是默认的标准输入流...,从键盘上读取,而fscanf是所有的标准输入流都可以,参数可以传文件流也可以跟scanf一样传stdin(标准输入流),而sscanf是从一个字符串读取。

    52010

    后台优化:使用应用性能管理工具

    而了解应用性能瓶颈的最好方法就是:查看程序运行时间最长的部分。在这时,我们就可以考虑使用性能管理工具来分析应用的性能。...挫折:响应时间大于四倍的目标时间(T秒),用户无法忍受这个过程,便会离开网页。 下面我们将 New Relic 作为应用性能管理工具,来分析和展示应用程序的性能。...专业版里提供了一些高级的功能,这些功能更适合于、大型的 Web 应用,如部署追踪、服务地图、衡量负载报告等等的功能。...这个设置的过程是: 获取一个密钥 再用这个密钥生成一个配置文件 重新运行我们的应用 如官网的步骤所示: New Relic 设置步骤 我们在网页端获取密钥,随后安装 newrelic 的库 sudo pip...尽管我们无法避免用户访问这个页面,但是我们可以使用缓存等等的方法,来尽量减少执行这个方法的次数。这样一来,我们就可以大大地提高应用的性能。

    1.7K80

    JAVA面试基础「建议收藏」

    () 获取文件所在的目录 public File getParentFile() 获取文件所在目录对应的File对象 public String getPath() 获取文件路径 public boolean...Input 输入流(将外部文件读入到 Java 程序)   Output 输出流(将 Java 程序的数据输出到外部)   Java 的流有很多种不同的分类。...) —> Reader(字符输入流) InputStreamReader 的功能是将字节输入流转换为字符输入流,是处理流 import java.io.FileInputStream; import...流没有 flush ⽅法,但不代表它没有缓冲流,输出流是有 flush ⽅法的,实际开发关闭输出缓冲流之前,需要调⽤ flush ⽅ 法。...flush 方法,但不代表它没有缓冲流,输出流是有 flush 方法的,实际开发关闭输出缓冲流之前,需要调用 flush 方法。

    96120

    学习文件和文件操作

    文件的打开和关闭  C程序针对⽂件、画⾯、键盘等的数据⼊输出操作都是通过流操作的。 ⼀般情况下,我们要想向流⾥写数据,或者从流读取数据,都是要打开流,然后操作。...那是因为C语⾔程序启动的时候,默认打开了3个流: • stdin 标准⼊流,⼤多数的环境从键盘⼊,scanf函数就是从标准⼊流读取数据。...C语⾔,就是通过 FILE* 的⽂件指针来维护流的各种操作的。默认打开了这三个流,我们使⽤scanf、printf等函数就可以直接进⾏⼊输出操作的。...对⽐⼀组函数: scanf/fscanf/sscanf scanf 从标准输入流上读取格式化的数据 fscanf 从指定输入流上读取格式化的数据 sscanf  printf/fprintf/sprintf...如果从磁盘向计算机读⼊数据,则从磁盘⽂件读取数据 ⼊到内存缓冲区(充满缓冲区),然后再从缓冲区逐个地将数据送到程序数据区(程序变量等)。缓冲区的大小是由编译系统决定的。

    10410

    【C语言】文件操作(1)

    ⽐如程序运⾏需要从中读取数据的⽂ 件,或者输出内容的⽂件,(其并不会被运行,只是拿来读写) 以前各章所处理据的⼊输出都是以终端为对象的,即从终端的键盘⼊数据,运⾏结果显⽰到显⽰器上。...(大部分编译器都能打开并正常显示出数据) 文件的打开和关闭 流和标准流 流 我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的⼊输出操作各不相同,我们程序员就是个写代码...(该图片转载) 流是有明确的方向性的,所以分为两种,要么是输入流(从外部设备到内存),要么是输出流 (从内存向外部设备)。...• stdin(指向标准输入流) - 标准⼊流,⼤多数的环境从键盘⼊,scanf函数就是从标准⼊流读取数据。...\为转义字符,所以代码需要改为\\才能不影响结果。

    8210

    Java IO(Properties对象序列化打印流commons-io)

    Properties 可保存在流或从流中加载。...属性列表每个键及其对应值都是一个字符串 主要方法 setProperty等同与Map接口中的put , setProperty(String key, String value) 通过键获取值, getProperty...fis = new FileInputStream("c:\\person.txt"); //创建反序列化流,构造方法,传递字节输入流..., 对象实现Serializable接口接口后,会给对象创建一个serialVersionUID用作标识对象,如果更改了源代码,则这个表示会改变, 反序列化的时候java会对比文件和类的的标识是否对应...打印流的分类 PrintStream PrintWriter 打印流的特点 不负责数据源,只负责数据目的(只提供操作) 永远不会抛出IOException,但是可能抛出别的异常 两个打印流的方法,完全一致

    85600

    【C语言】深度探讨文件操作(一)

    如果没有文件,我们写的程序的数据是存储电脑的内存,如果程序退出,内存回收,数据就丢失了,等再次运行程序,是看不到上次运行程序的数据的,如果要将数据进行持久化的保存,我们可以使用文件。...pf = NULL; return 0; } test.txt直接在文件打开图: VS上用二进制编辑器打开test.txt 10000的二进制表示:00 00 27 10 在内存按小端存储...:10 27 00 00 文件的打开和关闭 流和标准流 我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据数据,不同外部设备的输入输出的操作各不相同,为了方便程序员对各种设备进行方便的操作...那是因为C语言程序启动的时候,默认打开了3个流: stdin - 标准输入流大多数的环境从键盘输入,scanf函数就是从标准输入流读取数据。...格式化⼊函数 所有⼊流 fprintf 格式化输出函数 所有输出流 fread ⼆进制⼊ ⽂件 fwrite ⼆进制输出 ⽂件 注:表格的每个函数名可以点击,可以为你进行更深入的查找。

    11510

    C语言——P文件操作

    但是程序设计,我们⼀般谈的⽂件有两种:程序⽂件、数据⽂件(从⽂件功能的⻆度来分类的)。...以前各章所处理数据的⼊输出都是以终端为对象的,即从终端的键盘⼊数据,运⾏结果显示到显示器上。...fclose(pf); pf = NULL; return 0; } 图: 四、文件的打开和关闭 1、流和标准流 a.流 我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的...C程序针对⽂件、画⾯、键盘等的数据⼊输出操作都是通过流操作的。 ⼀般情况下,我们要想向流⾥写数据,或者从流读取数据,都是要打开流,然后操作。...那是因为C语⾔程序启动的时候,默认打开了3个流: • stdin-标准输入流大多数的环境从键盘输入,scanf 函数就是从标准输入流读取数据。

    14510

    C语言中的文件和文件操作

    但是程序设计,我们一般谈的文件有两种:程序文件、数据文件(从文件功能角度来分类的)。...二、、文件操作 1.文件的打开和关闭 1.1流和标准流 流:我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输入输出操作各不相同,为了方便程序员对各种设备进行方便的操作...一般情况下,我们想向流里写数据,或者从流读取数据,都需要打开流,然后操作 标准流:C语言程序启动的时候,默认打开3个流: stdin-标准输入流大多数的环境从键盘输入,scanf函数就是从标准输入流读取数据...fputc 字符输出函数 所有输出流 fgets 文本行输入函数 所有输入流 fputs 文本行输出函数 所有输出流 fscanf 格式化输入函数 所有输入流 fprintf 格式化输出函数 所有输出流...如果从磁盘向计算机读⼊数据,则从磁盘⽂件读取数据 ⼊到内存缓冲区(充满缓冲区),然后再从缓冲区逐个地将数据送到程序数据区(程序变量等)。缓 冲区的⼤⼩根据C编译系统决定的。

    10510

    超越Storm,SparkStreaming——Flink如何实现有状态的计算

    map 算子接收到每个元素后, 将输入记录的第二个字段的数据加到现有总数,再将更新过的元素发射出去。 ?...输入流的 6 条记录被检查点屏障 (checkpoint barrier)隔开,所有的 map 算子状态均为0(计数还未开始)。...如果输入流来自消息传输系统Kafka,这个相互隔离的位置就是偏移量。 ? 检查点屏障像普通记录一样算子之间流动。...在这种情况下,Flink 会重新拓扑(可能会获取新的执行资源),将输入流 倒回到上一个检查点,然后恢复状态值并从该处开始继续计算。 ?...本质上有两种实现方法,用哪一种方法则取决于 出存储系统的类型,以及应用程序的需求。

    85630

    《JavaSE-第十五章》之文件(二)

    转换流 由于文件编码与代码文件编码不一致,从而会导致乱码,为了解决上述问题,可以使用转换流,将数据输入和输出时指定流的编码格式与文件的编码格式保持一致。...构造器 说明 public InputStreamReader(InputStream is ,String charset) 可以把原始的字节流按照指定编码转换成字符输入流,这样字符流的字符就不乱码了...) 把低级字节如流包装成高级的对象字节输入流 反序列化的方法 方法 说明 public Object readObject() 把存储到磁盘文件中去的对象数据恢复成内存的对象返回 序列化ID 通常在序列化的时候会给类加上一个字段...private static final long serialVersionUID = -4985775903060349049L; 序列化ID的作用 序列化ID是为了保证能够成功反序列化的成功,进行反序列化的过程...gender字段,执行上述的代码就不会出异常了 properties Properties是一个存储键值对数据的文件对象,该文件后缀为.properties。

    16120
    领券