access函數c語言
A. c語言打開文件前,如何判斷該文件是否已經被打開
用_access函數判斷,再次打開時的情況要看你第一次的打開方式了,如果上次用的是非獨占打開,那沒問題,如果是獨占打開,會打開失敗
Example
/* ACCESS.C: This example uses _access to check the
* file named "ACCESS.C" to see if it exists and if
* writing is allowed.
*/
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
void main( void )
{
/* Check for existence */
if( (_access( "ACCESS.C", 0 )) != -1 )
{
printf( "File ACCESS.C exists\n" );
/* Check for write permission */
if( (_access( "ACCESS.C", 2 )) != -1 )
printf( "File ACCESS.C has write permission\n" );
}
}
B. Access資料庫的類型是
Access資料庫類型是關系型資料庫。
資料庫的類型:
1、資料庫按照數據的存儲位置可分為:集中式和分布式;
2、按照所採用的數據模型分為:層次型、網狀和關系型。
(2)access函數c語言擴展閱讀:
access函數程序範例(C語言中)
/*intaccess(constchar*pathname,intmode);
此函數用於檢測某個指定路徑的文件(第一個參數pathname),是否符合第二個參數選項(F_OK(是否是存在的文件),R_OK(是否可讀),W_OK(是否可以寫入),X_OK(是否可以運行);當參數1滿足參數2條件時候返回0,不滿足返回-1;(此處剛剛好和字元串比對返回值類似)*/
//參考代碼如下:
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
char*myboolean(intp);
intmain(intargc,char**argv)
{
inta,b,c,d;
a=access(argv[1],F_OK);
b=access(argv[1],R_OK);
c=access(argv[1],W_OK);
d=access(argv[1],X_OK);
printf("存在?%s,可讀?%s,可寫?%s,可運行?%s ",myboolean(a),myboolean(b),myboolean(c),myboolean(d));
exit(0);
}
char*myboolean(intp)/*此函數為了方便結果而定義的布爾運算*/
{
char*f=NULL;
if(p<0)
returnf="否";
if(p==0)
returnf="是";
}
/***********************************************************************************************/
網路-access函數
C. C語言連接Access資料庫如何實現標準的c語言
1、C/C++與資料庫交互,像 mssql/ mysql / oracle 等,一般都有成熟的第三方庫,這些庫裡面無非就是封裝了與資料庫通訊的方式和通訊協議搜一下要用的資料庫相關的 API 文檔,會說得很清楚任何文件都是二進制數據,關鍵是數據存儲的組織方式通用擴展名的文件,像gif/doc/jpg/wav,格式都是固定的。
2、舉個例子,連接SQL:
//打開資料庫
strDBClass.Format(_T("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=%s;JetOLEDB:DatabasePassword=%s"),m_strUnEntryptMdbFilePath,m_strMDBPassword);
//創建連接
HRESULThr=m_pConnection.CreateInstance(_uuidof(Connection));
_ConnectionPtrm_pConnection->Open(m_strDBClass,_T(""),_T(""),adConnectUnspecified);
//聲明表單指針
_RecordsetPtrpBandRecordset;
pBandRecordset.CreateInstance(__uuidof(Recordset));
//執行語句
CStringstrSQL(L"SELECT*FROM[Band]");
m_pConnection->Execute((LPCTSTR)strSQL,NULL,0);
//提取某一項例如BandInfo
intiBandInfo=wcscmp(colum,L"BandInfo");
while(!recordsetPtr->adoEOF)
{
var=recordsetPtr->GetCollect(colum);
if(var.vt!=VT_NULL)
strName=(LPCSTR)_bstr_t(var);
recordsetPtr->MoveNext();
}
D. C語言如何清空一個文件的例子
#include<stdio.h>
intmain(intargc,char*argv[])
{
//w+代表打開可讀/寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件
//如果這個文件是只寫文件那就需要用w
//如果這個文件不存在就不能創建的話需要用access函數先判斷該文件是否存在
FILE*pf=fopen("test.txt","w+");
if(pf)
{
printf("文件已被清空 ");
fclose(pf);
}
return0;
}