導航:首頁 > 編程大全 > c圖片寫入資料庫

c圖片寫入資料庫

發布時間:2025-09-16 18:54:19

A. windows環境,多線程情況下,C語言向文件寫入數據。

下面的程序,編譯之後,你可以運行很多個實例,目前我將文件寫在了D:\1.txt,每個程序寫1000行數據,這些值你可以自己更改(比如 寫在C:,每個程序寫10000行等),等程序都寫完後,你可以去文件中查看寫文件的結果。補充一下,我是在VC6.0環境中寫的,所以windows.h,如果你不是在這個環境中的話,可能需要修改一些定義,比如DWORD等。其他的API都是windows平台提供的API;
#include <stdio.h>
#include "windows.h"
int main()
{
//獲取進程ID,因為你希望是多個進程運行同時寫一個文件,所以,我們列印出進程ID
DWORD dwProcessID = GetCurrentProcessId();

//初始化我們要寫入文件中的內容,及該內容長度;
char szContent[100] = {0};
sprintf(szContent,"process[%u] write file\r\n",dwProcessID);
DWORD dwContentLen = strlen(szContent);

//創建互斥量,這樣可以進行進程間的互斥,當然用這個也可以做線程間的互斥
HANDLE hMutex = CreateMutex(NULL,FALSE,"MyFileMutex");
if (NULL == hMutex)
{
printf("[%u]Create/Open Mutex error!\r\n",dwProcessID);
return 1;
}

//創建或打開文件
HANDLE hFile = CreateFile("D:\\1.txt",
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_WRITE | FILE_SHARE_READ,NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_ARCHIVE,
NULL);
if (INVALID_HANDLE_VALUE == hFile)
{
printf("[%u]Creat/Open file error!\r\n",dwProcessID);
return 1;
}

//循環寫入文件
for(int i = 0; i < 1000 ; i++)
{
//等待臨界資源,即鎖定文件
WaitForSingleObject(hMutex,INFINITE);
printf("Process[%u] Get the signal\r\n",dwProcessID);
DWORD len = 0;

//因為是共享寫文件,即多個程序寫一個文件,所以一定要將文件指針偏移到尾部
SetFilePointer(hFile,0,NULL,FILE_END);

//寫入文件
BOOL rnt = WriteFile(hFile,szContent,dwContentLen,&len,NULL);
if (rnt == FALSE)
{
printf("Process[%u] Fail to write file\r\n",dwProcessID);
}

//釋放互斥量,解除鎖定
ReleaseMutex(hMutex);

//加個Sleep便於我們中間觀察結果
Sleep(30);
}
CloseHandle(hMutex);
CloseHandle(hFile);
return 0;
}

應你要求,我把AIP中的宏定義解釋如下:
HANDLE hFile = CreateFile("D:\\1.txt",
GENERIC_READ | GENERIC_WRITE,//表示程序對該文件有讀和寫的許可權
FILE_SHARE_WRITE | FILE_SHARE_READ,//表示可以多個程序共享讀和寫的許可權
NULL,
OPEN_ALWAYS,//表示打開該文件,如果該文件不存在,則創建該文件
FILE_ATTRIBUTE_ARCHIVE,//文件的屬性為存檔
NULL);

WaitForSingleObject(hMutex,INFINITE);
//INFINITE表示永遠等待,直到hMutex有信號為止

SetFilePointer(hFile,0,NULL,FILE_END);
//FILE_END表示從文件尾部開始偏移;實際此舉就是將文件指針偏移到文件尾部;

閱讀全文

與c圖片寫入資料庫相關的資料

熱點內容
qq怎麼清楚歷史記錄防止被盜 瀏覽:263
發送手機里的錄音文件在哪裡 瀏覽:866
js獲取下一個兄弟元素 瀏覽:293
js模板引擎原理 瀏覽:72
linuxo文件運行 瀏覽:713
什麼免費備份數據 瀏覽:342
測量大師導入底圖找不到文件 瀏覽:313
小紅傘安裝程序要求版本6 瀏覽:799
全民k歌pcm文件夾 瀏覽:224
c圖片寫入資料庫 瀏覽:466
c串口程序 瀏覽:500
中農金融注冊app有哪些 瀏覽:629
回收站文件清理不在電腦上有痕跡 瀏覽:886
dx版本更新 瀏覽:738
主機集群教程 瀏覽:939
蘋果6英版好不好 瀏覽:959
nodejs抓取網站音頻 瀏覽:772
app上下載的軟體在哪裡 瀏覽:36
起凡保存的照片在哪個文件夾 瀏覽:354
數學建模如何把模型編程 瀏覽:176

友情鏈接