0
A
回答
0
如果文件已经打开,拨打open()
不会给你一个错误。
Howerver,你可以尝试分析了Linux lsof
命令的输出:
lsof /dev/ttyS0
它将返回有关打开指定文件的进程的信息(在这种情况下是:/ dev/ttyS0来) 。
(我这个测试了几次,所以我不知道这件事,但lsof
似乎返回如果该文件是由一个进程打开并返回如果没有进程已经打开它这可能是一个迹象,不过我建议你真的分析命令本身)
0
#include <errno.h>
#include <stdio.h>
#include <strcing.h>
int main()
{
if(open("/dev/ttyS0", O_RDWR))
printf("errno = %s\n", strerror(errno));
return errno;
}
,以找出错误代码是什么看到这个link的输出。
相关问题
- 1. Linux内核AIO,开放系统调用
- 2. 开放系统调用
- 3. 在Linux上使用C开放系统调用
- 4. Linux系统调用
- 5. FUSE开放的系统调用机制
- 6. 开放系统调用linux的文件权限问题
- 7. 跟踪/包开放系统调用
- 8. linux系统调用getpeername C++
- 9. linux系统调用执行
- 10. Linux系统调用谁
- 11. nasm系统调用Linux
- 12. Linux阻止系统调用
- 13. Linux系统调用getifaddr C++
- 14. 宏+ Linux系统调用(NASM)
- 15. Unix系统调用开销
- 16. x86 linux系统调用调用约定?
- 17. 使用开放系统调用打开/ etc/passwd
- 18. 使用Linux系统调用和C++中
- 19. 使用LKM实现Linux系统调用
- 20. 什么使sys_read系统调用linux放入寄存器eax?
- 21. 迁移到开放系统
- 22. Linux glibc系统调用包装位置
- 23. sys_sendto Linux系统调用实现
- 24. Linux系统调用流程序列号
- 25. x86_64汇编Linux系统调用混淆
- 26. Linux系统调用表32和x64
- 27. Linux:通过ptrace()执行系统调用()
- 28. 如何禁止系统调用GNU/Linux
- 29. 冗余的Linux内核系统调用
- 30. Python的系统调用,在Windows和Linux
要查找实际的错误代码,您应该检查'errno',如果open()返回'-1'。这应该会让你对错误有更多的了解......虽然我不认为它能够告诉你它是否已被使用。 – jszakmeister 2013-03-26 09:08:49
您无法确定某个文件是否由标准C中的其他应用程序打开。您可以使用系统实用程序(lsof)或特定于您的案例的解决方案(如果所有有问题的进程都使用它们,则为咨询文件锁定)。 – 2013-03-26 11:38:29