c语言 启动线程 写文件,windows环境,多线程情况下,C语言向文件写入数据。

本文介绍了一个使用C语言在Windows环境下实现多线程同步写入同一文件的示例程序。通过创建互斥量Mutex确保文件写入的互斥,并使用CreateFile、SetFilePointer和WriteFile等API来操作文件。程序在每个进程中循环写入指定数量的数据行,并在每次写入后释放互斥量,确保其他进程可以继续写入。
摘要由CSDN通过智能技术生成

下面的程序,编译之后,你可以运行很多个实例,目前我将文件写在了D:\1.txt,每个程序写1000行数据,这些值你可以自己更改(比如 写在C:,每个程序写10000行等),等程序都写完后,你可以去文件中查看写文件的结果。补充一下,我是在VC6.0环境中写的,所以windows.h,如果你不是在这个环境中的话,可能需要修改一些定义,比如DWORD等。其他的API都是windows平台提供的API;

#include

#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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值