TinyXml的读取和编辑以及多线程的锁
来源:互联网 发布:极速扑克 知乎 编辑:程序博客网 时间:2024/06/05 01:04
#include <iostream>
#include <pthread.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <errno.h>
#include <vector>
#include <algorithm>
#include <unistd.h>
#include "tinyxml/tinyxml.h" //本地下载了tinyxml源码
#include <stdexcept>
#include <map>
#include <fcntl.h>
#include <stdlib.h>
#define MACXML "mac.xml"
using namespace std;
static bool usingMacXml = false;
pthread_mutex_t mutexMac = PTHREAD_MUTEX_INITIALIZER;
struct mac_data{
string mac;
string account;
string password;
string status;
};
void setMacStatus(mac_data m,string status)
{
pthread_mutex_lock( &mutexMac );
while(true)
{
if(!usingMacXml)
{
usingMacXml = true;
TiXmlDocument* macXml = new TiXmlDocument();
while(!(macXml->LoadFile(MACXML)))
{
}
TiXmlElement* rootElement = macXml->RootElement(); //MacList
TiXmlElement* macElement = rootElement->FirstChildElement(); //Machine
while ( macElement ) {
TiXmlElement* nameElement = macElement->FirstChildElement();//获得Machine的Name元素
TiXmlElement* accountElement = nameElement->NextSiblingElement(); //获得Machine的Password元素
TiXmlElement* passwordElement = accountElement->NextSiblingElement(); //获得Machine的Account元素
TiXmlElement* statusElement = passwordElement->NextSiblingElement(); //获得Machine的Status元素
bool condition = m.mac ==nameElement->GetText() && m.account ==accountElement->GetText() && status !=statusElement->GetText();
if(condition)
{
statusElement->Clear();
TiXmlText * text = new TiXmlText(status );
statusElement->LinkEndChild( text );
break;
}
else
cout<<"No match "<<m.mac<<" "<<nameElement->GetText()<< " account:"<<m.account<<" "<<accountElement->GetText()<<" status:" <<m.status<<" " <<statusElement->GetText()<<endl;
cout<<"condition is "<<condition<<endl;
macElement = macElement->NextSiblingElement();
}
macXml->SaveFile(MACXML);
delete macXml;
usingMacXml = false;
break;
}
else
system("sleep 1");
}
pthread_mutex_unlock(&mutexMac);
}
- TinyXml的读取和编辑以及多线程的锁
- tinyxml的xml读取
- TinyXML类库和对象模型 以及简单的TinyXML的简单用法。
- tinyxml的使用以及示例
- tinyXML读取xml文件的方法
- C++读取XML,tinyXml的使用
- TinyXML的编译和使用
- tinyxml的安装和使用
- tinyxml的用法和实例
- tinyxml 的加载和保存
- 毕业论文中使用的XML读取和制造工具!!!C++ 使用TinyXML解析XML文件
- tinyxml读取中文时显示乱码的解决方法
- tinyxml读取中文时显示乱码的解决方法
- TinyXML中节点和元素的关系
- CMarkup和TinyXml的使用感想
- CMarkup和TinyXml的使用感想 .
- SlimXml和TinyXml,RapidXml的性能对比
- tinyxml的学习和简单使用
- java抽象类不能实例化&实践是检验真理的唯一标准
- zoj 1133||joj 1027解题报告
- ScrollView的初始化
- 编译自己的Windows Android SDK(how to build Android SDK for Windows)
- JAVA 执行存储过程 得到乱码
- TinyXml的读取和编辑以及多线程的锁
- SetWindowLong 用法总结
- SQL 7 计算字段 - 1. 常量字段
- pthread创建多线程
- 获取下拉框的值
- Hadoop常见问题及解决办法
- 添加防伪图片水印
- IBM System X3650 M3 安装 suse
- Asp.net网站速度性能优化总结