我正在尝试在我的源代码中进行系统调用,代码如下。
int file;
file = open(argv[index], O_RDONLY);
当命令行参数是指向文件系统中的二进制文件路径时,我调用此命令会出现 EINVAL
错误。我已确认该文件存在并且具有访问权限。
您有什么建议在什么情况下会抛出 EINVAL
错误。
我正在尝试在我的源代码中进行系统调用,代码如下。
int file;
file = open(argv[index], O_RDONLY);
当命令行参数是指向文件系统中的二进制文件路径时,我调用此命令会出现 EINVAL
错误。我已确认该文件存在并且具有访问权限。
您有什么建议在什么情况下会抛出 EINVAL
错误。
open()
实现不支持您尝试打开的文件的同步IO。argv[index]
实际包含文件名,并且O_RDONLY
没有被覆盖(O_RDONLY
应该等于0),请通过dmesg
命令检查系统日志,确保内核中没有发生任何奇怪的事情。