我对Common Lisp还是很陌生,在使用“ osicat”系统中的功能时需要帮助。我要完成的工作是获取文件的大小。为此,我想使用osicat系统的“ stat”函数返回的结果。尝试从与我在其中启动sbcl的目录相同的文件中获取信息后,似乎该函数要么花了很多时间从文件中收集信息,要么它什么都不做并且由于未知原因挂起。我不太了解如何解决此问题,也不知道是什么原因导致了此问题。
这里是我遇到问题之前采取的行动顺序:
执行最后一条命令后,好像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
也许,您的问题与cygwin
交互有关。通过在sbcl
下运行strace
,您可能会得到一些线索。