我是Python和Fuse的新手。我正在通过我在系统上运行的其他人的Fuse代码工作。
以下是启动程序的主要方法:
if __name__ == '__main__':
os.system('clear')
print "\n[*] Filesystem has been started.\n==============================================="
main(sys.argv[1], sys.argv[2])
这称之为
def main(a, b):
print "\n[*] Calling main method"
FUSE(FuseHandler(a), b, foreground=True)
我(现在知道)从Fuse调用init方法... What is happening when this code calls FUSE like this?
class FuseHandler(Operations):
'''
Class must implement reading a file, writing a file, and listing a directory.
POSIX calls will be redirected as such.
'''
def __init__(self, root):
self.root = realpath(root)
# Set up a working directory in case this is the first run
self.printStatus()
print '[-] End of Fuse init method: system initialized'
当我运行程序时,它一直运行到init方法的末尾,然后打印
“Fuse init方法结束:系统初始化。”
然后光标闪烁,就像Python期待输入一样。该计划不会终止。它在做什么?调用Fuse init后代码“go”在哪里?这是一个正在运行的Fuse控制台的样子吗?
答案 0 :(得分:2)
通过FUSE(...)
调用,您可以控制FusePy库,该库必须保持程序运行(下面可能有一个事件调度循环);否则,如果它立即终止,你的程序怎么能继续响应Fuse文件操作请求(其实现在你的处理程序类中)?