您的位置:首页 > 游戏 > 手游 > 河南工程建筑信息网_网页设计制作员_关键词搜索量查询_东莞网站自动化推广

河南工程建筑信息网_网页设计制作员_关键词搜索量查询_东莞网站自动化推广

2025/2/23 14:49:14 来源:https://blog.csdn.net/qq_53627084/article/details/145736772  浏览:    关键词:河南工程建筑信息网_网页设计制作员_关键词搜索量查询_东莞网站自动化推广
河南工程建筑信息网_网页设计制作员_关键词搜索量查询_东莞网站自动化推广

题目

代码

class File
{
private:FILE* fp;   //文件指针
public:File(const char* fimename); //构造函数void write(const char* str);//数据写入char* read(int size);       //数据读取~File();    //析构函数
};
/*********************************** main主函数 ***********************************/
int main(int argc,const char** argv)
{//打开文件File f="readme";//写入数据f.write("你好世界");f.write("你好新世界");//读取数据char* dataPtr=f.read(128);//显示数据cout<<dataPtr<<endl;//释放空间free(dataPtr);return 0;
}/*********************************** 构造函数 与 成员方法 ***********************************/
File::File(const char* fimename):fp(NULL)    //初始化成员属性
{//如果文件存在if(access(fimename,F_OK)==0){//以读写形式打开fp=fopen(fimename,"r+");//判断是否成功打开if(NULL==fp){cout<<"文件打开失败"<<endl;}return;}//如果文件不存在.创建后打开fp=fopen(fimename,"w+");//判断是否成功打开if(NULL==fp){cout<<"文件打开失败"<<endl;}
}void File::write(const char* str)
{//检查地址是否合法if(NULL==fp){cout<<"地址不合法"<<endl;return;}//获取数据int len=strlen(str);    //用于记录数据长度char data[len]={0};     //用于存放数据内容strncpy(data,str,len);  //复制数据到数组//数据写入fwrite(data,len,1,fp);return;
}char* File::read(int size)
{//检查地址是否合法if(NULL==fp){cout<<"地址不合法"<<endl;return NULL;}//申请空间,用于存放数据char* dataPtr=(char*)malloc(size);//读取数据fseek(fp,SEEK_SET,0);   //光标移到文件开头fread(dataPtr,size,1,fp);   //开始读取return dataPtr;
}File::~File()
{if(NULL!=fp){free(fp);}
}

效果

题目

代码

//类
class Mutex
{
private:pthread_mutex_t mutex;  //锁名
public:Mutex(int tpye);//构造函数void lock();    //上锁void unlock();  //解锁~Mutex();       //析构函数
};//分支线程
void* thread1(void* arg);/*********************************** main主函数 ***********************************/
//选择互斥锁
// Mutex MUTEX=PTHREAD_MUTEX_FAST_NP;  //快速锁
// Mutex MUTEX=PTHREAD_MUTEX_RECURSIVE_NP;  //递归锁
Mutex MUTEX=PTHREAD_MUTEX_ERRORCHECK_NP;  //错误检查锁int main(int argc,const char** argv)
{//创建线程pthread_t id;pthread_create(&id,NULL,thread1,NULL);   //将互斥锁传入pthread_detach(id);     //设置为自动回收//从终端吃到数据,则程序结束while(getchar()!=10);return 0;
}/*********************************** 构造函数 与 成员方法 ***********************************/
Mutex::Mutex(int tpye)
{//创建 互斥锁属性 变量pthread_mutexattr_t attr;//互斥锁属性 初始化pthread_mutexattr_init(&attr);//设定为相应的锁pthread_mutexattr_settype(&attr,tpye);//用锁属性 给 锁 初始化pthread_mutex_init(&mutex,&attr);//销毁互斥锁属性 变量pthread_mutexattr_destroy(&attr);
}void Mutex::lock()
{pthread_mutex_lock(&mutex);
}
void Mutex::unlock()
{pthread_mutex_unlock(&mutex);
}Mutex::~Mutex()
{pthread_mutex_unlock(&mutex);if(pthread_mutex_destroy(&mutex)==0){cout<<"互斥锁已销毁"<<endl;}
}/*********************************** 分支线程 ***********************************/
void* thread1(void* arg)
{while (1){MUTEX.lock();MUTEX.lock();cout<<"A号 行动"<<endl<<endl;sleep(1);MUTEX.unlock();MUTEX.unlock();}
}

效果

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com