C语言多线程的应用--局域网中多台计算机对同一文件读写

项目背景:生产制造型公司有多台生产测试设备同时运行,测试中产品错误代码记录在本地,现在需要将多台设备测试过程中出现的产品错误代码保存在局域网某台主机的公共文件中


步骤1:

测试设备软件用的CVI9.0,不知怎么回事有部分代码就是编译不过,无奈只好换其他编译器把这部分代码写成.exe文件。代码功能:将本机MAC地址保存在.txt文件中供读取,因为设备是按MAC地址区分的。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "Windows.h"
 

#define MAC_HEADER_E "Physical Address"
#define MAC_HEADER_C "物理地址"


int main(int argc, char * argv [ ])
{
	 char *netname = "本地连接";
	 char buf [4096];
	 FILE *fp;
	 char *tmp1, *tmp2;
	 int size;
	 char mac[20] = {0};
	 	
	 system("ipconfig /all > d:\\tmp.txt");
	 fp = fopen("d:\\tmp.txt", "r");
	 if(fp == NULL) 
	 {
	  printf("can not find tmp.txt, please check \n");
	  return -1;
	 }
	 
	 fseek(fp, 0, SEEK_END);//将指针移动到文件结尾 
	 size = ftell(fp);     //得到流式文件的当前读写位置,其返回值是当前读写位置偏离文件头部的字节数    
	 if(size >= sizeof(buf))
	 {
		  printf("the buffer size is too small, should be more than %d\n", size);
		  fclose(fp);
	 }
	 
	 fseek(fp, 0, SEEK_SET);
	 memset(buf, 0, sizeof(buf));	 
	 fread(buf, 1, size, fp);//从一个文件流中读数据,读取 size个元素 ,
	 fclose(fp);			//每个元素 1 字节.如果调用成功返回 值大于count。如不成功,返回实际读取的元素个数,小于count.
	 
	 
	 tmp1 = strstr(buf, netname); //strstr() 函数搜索一个字符串在另一个字符串中的第一次出现
	 if(tmp1 == NULL)			//该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。
	 {
		  printf("can not find network name %s, please check your network name\n", netname);
		  return -2;
	 }
	 
	 tmp2 = 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值