我收到了一个Python项目(如果需要的话,它恰好是Django项目)使用fcntl
了标准库中的模块,该库似乎仅在Linux上可用。当我尝试在Windows计算机上运行它时,它会以停止ImportError
,因为此模块在此处不存在。
我有什么办法可以对程序进行一些小的更改以使其在Windows上运行?
fcntl
Windows上的替代项是win32api
调用。用法是完全不同的。这不是您可以直接拨动的开关。
换句话说,将fcntl
-heavy-
user模块移植到Windows并非易事。它要求您分析每个fcntl
调用的确切功能,然后找到等效的win32api
代码(如果有)。
也有可能某些使用的代码fcntl
没有Windows等效项,这将要求您使用要移植的模块来更改模块api以及程序的结构/范例。
如果您提供有关fcntl
呼叫的更多详细信息,人们可以找到Windows等效项。
问题内容: 我一直在遵循Beej网络指南,并且在服务器部分中,有一部分代码称为功能fork()。 我在Windows机器上,无法正常工作。我该怎么解决?我的代码如下。 问题答案: 检查您的模式中是否包含指向不存在的模块或没有成员的模块的include语句。我发现您的可能不正确。应该是吗?
描述 (Description) 此函数是系统fcntl()函数的Perl版本。 使用FILEHANDLE上的SCALAR执行FUNCTION指定的功能。 SCALAR包含要由函数使用的值,或者是任何返回信息的位置。 语法 (Syntax) 以下是此函数的简单语法 - fcntl FILEHANDLE, FUNCTION, SCALAR 返回值 (Return Value) 此函数返回0,但如果
fcntl(文件描述词操作) 相关函数 open,flock 表头文件 #include<unistd.h> #include<fcntl.h> 定义函数 int fcntl(int fd , int cmd); int fcntl(int fd,int cmd,long arg); int fcntl(int fd,int cmd,struct flock * lock); 函数说明 fcntl
fcntl 文件描述词操作 相关函数 open,flock 表头文件 #include<unistd.h> #include<fcntl.h> 定义函数 int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); int fcntl(int fd, int cmd, struct flock *lock); 函数说明 fc
函数原型 #include <unistd.h> #include <fcntl.h> int fcntl(int fd, int cmd, ... /* arg */ ); 参数 参数可能有两个,也可能有三个,具体看第二个参数的取值。 fd: 文件描述符 cmd: 命令 arg: 命令的参数 常用cmd arg 描述 F_DUPFD 复制文件描述符 F_GETFD 无 获取文件描述符标签 F_S
6. fcntl 先前我们以read终端设备为例介绍了非阻塞I/O,为什么我们不直接对STDIN_FILENO做非阻塞read,而要重新open一遍/dev/tty呢?因为STDIN_FILENO在程序启动时已经被自动打开了,而我们需要在调用open时指定O_NONBLOCK标志。这里介绍另外一种办法,可以用fcntl函数改变一个已打开的文件的属性,可以重新设置读、写、追加、非阻塞等标志(这些标志