是指字段;
头文件:unistd.h
功 能: 确定文件或文件夹的访问权限。即,检查某个文件的存取方式,比如说是只读方式、只写方式等。如果指定的存取方式有效,则函数返回0,否则函数返回-1。
access to作为有权使用什么,即可理解access()函数想表达有做某事的权限。函数参数有两个,第一个为文件,那么对应的第二个参数就不难推想出为文件有那些权限和是否存在。
扩展资料:用 法:int access(const char *filenpath, int mode)或者int _access( const char *path, int mode );
参数说明:
filenpath
文件或文件夹的路径,当前目录直接使用文件或文件夹名
备注:当该参数为文件的时候,access函数能使用mode参数所有的值,当该参数为文件夹的时候,access函数值能判断文件夹是否存在。在WIN NT中,所有的文件夹都有读和写权限
mode
要判断的模式
在头文件unistd.h中的预定义如下:
#define R_OK 4/*Test for read permission.*/
#define W_OK 2/*Test for write permission.*/
#define X_OK 1/*Test for execute permission.*/
#define F_OK 0/*Test for existence.*/
具体含义如下:
R_OK只判断是否有读权限
W_OK只判断是否有写权限
X_OK判断是否有执行权限
F_OK只判断是否存在
在宏定义里面分别对应:
00只存在
02写权限
04读权限
06读和写权限
access函数程序范例(C语言中)
#include&ltstdio.h&gt
#include&ltunistd.h&gt
int file_exists(char*filename)
int main(void)
{
printf("Does NOTEXIST.FIL exist:%s\n",
file_exists("NOTEXISTS.FIL")?"YES":"NO")
return 0
}
int file_exists(char*filename)
{
return(access(filename,0)==0)
}
VC连接access有两种方法。一种是通过ODBC,一种是通过ADO:
1、如果用ADO的方法
应确保包含进了afxdao.h头文件,可以在StdAfx.h文件中包含它,如下:
#include <afxdao.h> //加入DAO数据库支持MFC用下面代码:
#import "C:/Program Files/Common Files/System/ado/msadox.dll" //no_namespace //ADOX#import "C:/Program Files/Common Files/System/ado/msado15.dll" rename("EOF","adoEOF") // no_namespace // 不使用命名空
用ODBC 要加入 头文件
#include"afxdb.h"具体例子百度有很多
比如在你的工程目录中建一个dbf\vir.mdb //Access数据库,然后你需要做以下 *** 作:
1.在StadAfx.h里面添加#include<afxdb.h>//新加入头文件,用于CDatabase类。
2.在StadAfx.h最后的#endif上添加#import"msado15.dll"no_namespacerename("EOF","rsEOF")
这时,你要把msado15.dll拷到与dbf同级的目录,也就是工程目录里,当然你可以该路径
3.在你自己的工程里,比如MyProc是你建的工程,添加代码
CMyPorcApp::CMyProcApp(){
CoInitialize(NULL)
SQLConfigDataSource(NULL,ODBC_ADD_DSN,"MicrosoftAccessDriver(*.mdb)",\
"DSN=MyImageDBQ=dbf\\vir.mdbDEFAULTDIR=dbf")//注册本地数据库数据源
m_db.OpenEx("DSN=MyImage",CDatabase::noOdbcDialog)//MyImage是数据源名称
}
4.在前面的函数体之前创建全局变量CDatabasem_dbCRecordsetm_rec(&m_db)
5.使用数据库{
CStringstrSQL="select*fromvirdb"
BSTRbstrSQL=strSQL.AllocSysString()
m_rec.Open(CRecordset::dynaset,strSQL)
while(!m_rec.IsEOF())
{
//使用数据库的代码,读出来的数据都是字符串型的
CStringMyVirable
m_rec.GetFieldValue("字段名",MyVirable) //将某个字段的当前行的值读到MyVirabl中
//......
m_rec.MoveNext()//将记录移到下一行
}
}
本程序是自动注册数据源的,当然可以手动注册数据源,关于如何注册数据源并不麻烦,叙述起来不太方面,你就参考其他的吧。不过建议不用手动注册数据源,这样你地程序移植性不好.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)