易截截图软件、单文件、免安装、纯绿色、仅160KB

C/C++里如何判断一个文件已经被占用?

就是我打开一个文件前要知道该文件是否正在被别的程序占用
能知道别的程序占用状态更好,比如别的进程以读或者写的方式打开
不知道C库函数怎么判断这个?
你应该直接打开,再进行失败后的异常处理,而不是事先判断。因为即使你有一个完美的算法进行判断,你也不能保证一个被判断没有被占用的文件,在你去打开的时候它还是没有被占用。也就是,你判断后,别人打开,你再打开,你一样失败,你这种判断毫无意义。


以"rw"模式fopen文件,如果不能open,则说明被占用。否则没有被独占。



学一下

楼上说的对,先尝试直接打开,打得开就没被占用,打不开处理异常情况

http://frente.yo2.cn/articles/%E6%9E%9A%E4%B8%BE%E7%B3%BB%E7%BB%9F%E4%B8%AD%E6%89%93%E5%BC%80%E7%9A%84%E5%8F%A5%E6%9F%84.html 这是一个更复杂的方法。

我这样,file2 仍然有值
C/C++ code:

char old[] = "sdfsd.txt", new_name[] = "sdfsd1.txt";

FILE *file;
file = fopen(old,"w");
int nn = GetLastError();
ATLASSERT(file);

FILE *file2 = fopen(old,"r+");
nn = ferror(file2);
ATLASSERT(file2);



估计Cruntime库没有实现排他模式,因此你打开总是合法的。


不过如果fopen都不失败,你更不可能检测出谁已经打开他了



如果是windows下,请看msdn的资料。
HFILE OpenFile(
  LPCSTR lpFileName,
  LPOF


相关问答:

eclipse3.5+cdt编译c有问题

编译普通的c没问题啊,但编译javah生成的就报错:
gcc -O0 -g3 -Wall -c -fmessage-length=0 -oHelloWorld.o ..\HelloWorld.c
gcc -otest.exe HelloWorld.o
d:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../. ......

C\C++如何计算函数的导数

C\C++如何计算函数的导数,本人新手,想写个程序,但是不知道如何下手,还望高手指点一二,谢过。
这个……

跟函数的具体形式有关吧,难道你想编出个“万能”的求导函数?

俺上学时想过自动推导公式,后来 ......

能用C/C++简单实现五子棋程序吗?

最近突然想自己来实现一个五子棋程序,但不知道怎么开始,自己也没学画图形函数,能在控制台下直接写吗>>>?????
控制台?比图形界面更麻烦。
http://search.download.csdn.net/search/%E4%BA%94%E5%AD%90% ......

我很伤心,C即将被淘汰!

6月5日消息,XX网站日前评出了10项大势已去的计算机技术。其中,有些技术已经被淘汰,有些即将被淘汰。如著名的Cobol语言,以及IBM的OS/2系统。

  以下为XX网站评出的被淘汰的10项计算机技术:

   ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号