Lisp osicat posix:状态冻结

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

我对CommonLisp很陌生,在使用“osicat”系统中的函数时需要帮助。我试图实现的是获得文件的大小。为了实现这一点,我想使用osicat系统的函数“stat”返回的结果。在尝试从我启动sbcl的同一目录中找到的文件中获取信息时,似乎要么该函数要花很长时间才能从该文件中收集信息,要么它什么也不做,因为未知原因而挂起。我不知道该怎么做,也不知道是什么导致了这个问题

以下是在我遇到问题之前采取的行动顺序:

  • 打开Powershell
  • 执行cygwin
  • 执行sbcl
  • (ql:quickload:osicat)(加载时没有任何投诉)
  • (包装内:osicat posix)
  • (osicat posix:统计“环境数据库”)

  • 执行最后一个命令后,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,也许用?