Lisp osicat posix:状态冻结
我对CommonLisp很陌生,在使用“osicat”系统中的函数时需要帮助。我试图实现的是获得文件的大小。为了实现这一点,我想使用osicat系统的函数“stat”返回的结果。在尝试从我启动sbcl的同一目录中找到的文件中获取信息时,似乎要么该函数要花很长时间才能从该文件中收集信息,要么它什么也不做,因为未知原因而挂起。我不知道该怎么做,也不知道是什么导致了这个问题 以下是在我遇到问题之前采取的行动顺序:Lisp osicat posix:状态冻结,lisp,common-lisp,read-eval-print-loop,sbcl,Lisp,Common Lisp,Read Eval Print Loop,Sbcl,我对CommonLisp很陌生,在使用“osicat”系统中的函数时需要帮助。我试图实现的是获得文件的大小。为了实现这一点,我想使用osicat系统的函数“stat”返回的结果。在尝试从我启动sbcl的同一目录中找到的文件中获取信息时,似乎要么该函数要花很长时间才能从该文件中收集信息,要么它什么也不做,因为未知原因而挂起。我不知道该怎么做,也不知道是什么导致了这个问题 以下是在我遇到问题之前采取的行动顺序: 打开Powershell 执行cygwin 执行sbcl (ql:quickload:o
执行最后一个命令后,repl循环好像挂起了。我试着在互联网上搜寻任何线索或答案来解释为什么会发生这种情况,但只找到了给我带来困难的教程。任何洞察、线索、提示或帮助都将不胜感激。你的行动顺序没有问题,你应该期待你想要的结果。以下是我在SLIME中的输出:
CL-USER> (osicat-posix:stat "/etc/passwd")
#<OSICAT-POSIX:STAT {1039159BB3}>
CL-USER> (describe (osicat-posix:stat "/etc/passwd"))
#<OSICAT-POSIX:STAT {103916B4F3}>
[standard-object]
Slots with :INSTANCE allocation:
DEV = 64769
INO = 25166054
MODE = 33188
NLINK = 1
UID = 0
GID = 0
RDEV = 0
SIZE = 2324
BLKSIZE = 4096
BLOCKS = 8
ATIME = 1576246741
MTIME = 1575707407
CTIME = 1575707407
CL-USER>(osicat posix:stat)/etc/passwd)
#
CL-USER>(描述(osicat posix:stat)/etc/passwd)
#
[标准对象]
插槽:实例分配:
DEV=64769
INO=25166054
模式=33188
NLINK=1
UID=0
GID=0
RDEV=0
尺寸=2324
BLKSIZE=4096
区块=8
ATIME=1576246741
MTIME=157577407
CTIME=157577407
也许,您的问题与
cygwin
交互有关。通过在strace
下运行sbcl
,您可能会得到一些关于发生了什么的线索,谢谢。我会尝试不用cygwin,也许用?