我刚刚开始学习 FUSE,我将在 FreeBSD 和 MacOS 下将它与 Python 3 一起使用。首先,我有点困惑哪个模块是 Python 3 端 FUSE 的实际接口:
所以,看起来,FUSE 库的实际版本是 3,看起来,我应该使用pyfuse3,但是关于“Linux 文件系统”的评论让我想知道我是否应该回退到python-fuse在 FreeBSD/MacOS 下愉快地工作。
关于pathlib标准库中的模块,该path.open()方法是否只是内置open()函数的“包装器” ?
尝试操纵 中的 IPv6 地址struct sin6_addr,例如清理它:
struct sockaddr a;
memset(&(((struct sockaddr_in6 *)&a)->sin6_addr.s6_addr), 0, 16);
printf("SIZEOF: %lu\n", sizeof((((struct sockaddr_in6 *)&a)->sin6_addr.s6_addr)));
Run Code Online (Sandbox Code Playgroud)
并面临警告:
1.c:34:2: warning: 'memset' will always overflow; destination buffer has size 8, but size argument is 16 [-Wfortify-source]
memset(&(((struct sockaddr_in6 *)&a)->sin6_addr.s6_addr), 0, 16);
Run Code Online (Sandbox Code Playgroud)
同时printf("SIZEOF...")返回16个字节,那么空间应该足够了吧?
另外,如果我这样做:
struct sockaddr a;
struct in6_addr aa;
aa = ((struct sockaddr_in6 *)&a)->sin6_addr.s6_addr;
memset(&aa, 0, 16);
Run Code Online (Sandbox Code Playgroud)
没有显示任何警告。我做错了什么?
UPD。修复了 printf() 中的一个问题