当前位置: 首页 > news >正文

做网站如何安全 博客如何提升网站的转化率

做网站如何安全 博客,如何提升网站的转化率,竞猜网站模板,国外建站用什么最多多线程读写同个文件会不会有访问冲突或者异常#xff1f;我们写个程序来测试一下 /*** Created by fangruibin* 测试多线程读写文件*/#include iostream #include pthread.h #include unistd.h #include string.hconst char* fileName 我们写个程序来测试一下 /*** Created by fangruibin* 测试多线程读写文件*/#include iostream #include pthread.h #include unistd.h #include string.hconst char* fileName test.txt;void processRead() {FILE* fp fopen(fileName, r);if (fp NULL){printf(open file for read failed\n);return;}// 获取文件长度long startPos ftell(fp);fseek(fp, 0, SEEK_END);long endPos ftell(fp);long fileSize endPos - startPos;fseek(fp, 0, SEEK_SET);char* pBuf (char*)malloc(fileSize 1);size_t readSize fread(pBuf, 1, fileSize, fp);if ((long)readSize ! fileSize){printf(read not complete %ld\n, (long)readSize);}pBuf[fileSize] \0;if (strlen(pBuf) 0){printf(read empty\n);}printf(read:\n%s\n, pBuf);free(pBuf);fclose(fp); }void processWrite() {FILE* fp fopen(fileName, w);if (fp NULL){printf(open file for write failed\n);return;}const char* pData 2222222222222222222222222222\n2222222222222222222222222222\n2222222222222222222222222222\n;size_t dataLen strlen(pData);size_t writeLen fwrite(pData, 1, dataLen, fp);if (dataLen ! writeLen){printf(write not complete %ld\n, (long)writeLen);}fclose(fp); }void processReadWrite(const char* pData) {FILE* fp fopen(fileName, w);if (fp NULL){printf(open file for readwrite failed\n);return;}size_t dataLen strlen(pData);size_t writeLen fwrite(pData, 1, dataLen, fp);if (dataLen ! writeLen){printf(write not complete %ld\n, (long)writeLen);}// 获取文件长度fseek(fp, 0, SEEK_SET);long startPos ftell(fp);fseek(fp, 0, SEEK_END);long endPos ftell(fp);long fileSize endPos - startPos;fseek(fp, 0, SEEK_SET);char* pBuf (char*)malloc(fileSize 1);size_t readSize fread(pBuf, 1, fileSize, fp);if ((long)readSize ! fileSize){printf(read not complete %ld\n, (long)readSize);}pBuf[fileSize] \0;printf([rw] read:\n%s\n, pBuf);free(pBuf);fclose(fp); }//线程1 void* threadFunc1(void* p) {while (1){// const char* pData 111111111111111111111111111\n111111111111111111111111111\n;// processReadWrite(pData);processRead();usleep(100 * 1000);}return NULL; }//线程2 void* threadFunc2(void* p) {while (1){// const char* pData 222222222222222222222222222\n222222222222222222222222222\n;// processReadWrite(pData);processWrite();usleep(100 * 1000);}return NULL; }int main() {//初始化线程pthread_t hThread1;pthread_t hThread2;if (pthread_create(hThread1, NULL, threadFunc1, NULL) ! 0){printf(create thread 1 failed\n);return -1;}if (pthread_create(hThread2, NULL, threadFunc2, NULL) ! 0){printf(create thread 2 failed\n);return -1;}while (1){sleep(1);}return 0; } 代码中我们设计了两个线程第一个线程从test.txt文件中读内容第二个线程不断地向test.txt文件写入内容然后我们看看读出来的内容和我们写入的内容是不是一样的 运行结果 fangfang-deepin:~/dev/chrifang/test/cpp/file$ ./multi_thread read: 2222222222222222222222222222 2222222222222222222222222222 2222222222222222222222222222read not complete 0 read empty read:read not complete 0 read empty read:read not complete 0 read empty read:read empty read:read not complete 0 read empty read:read not complete 0 read empty read:read empty read:read: 2222222222222222222222222222 2222222222222222222222222222 2222222222222222222222222222 可以看到有很多读取结果为空的证明多线程读写文件是会有访问冲突的。如何避免冲突呢 1) 同个进程内读写文件加上线程锁 2) 不同进程读写文件使用flock()函数去加锁
http://www.pierceye.com/news/261928/

相关文章:

  • 广告公司怎么设置网站关键字网片的重量计算公式
  • 外贸网站都有哪些wordpress侧边栏选项卡
  • 北京网站建设 降龙网asp.net建网站
  • 中小网站建设新手自己做网站
  • 建网站手机如何建设网站并与数据库相连
  • 网站建设公司的客户个人网站做哪些内容
  • 外贸公司网站推广怎么让公司建设网站
  • 网站开发语长沙网站建设商城
  • 手机刷网站排名软件建设银行网站怎么登录密码忘了怎么办
  • 利用海康威视做直播网站鞍山网站建设找金航
  • 做网站大概花多少钱商圈云分销软件下载
  • 万户网站制作网站跳转怎么做
  • 网站开发全程设计做网站推广的公司发展前景
  • 电商设计网站培训建设网站域名
  • 石家庄免费专业做网站网站建设投标书服务方案范本
  • 怀孕单子图片在线制作北京seo服务行者
  • 网站备案 子域名云南商城网站建设
  • 上传到服务器的网站打开是空白网站报备流程
  • 如何用ps做网站标识一个叫mit做app的网站
  • 网站免费网站免费主流网站模板
  • 湖州市交通建设管理局网站牌具做网站可以吗
  • 湖南鸿泰电力建设有限公司网站西安做小程序的公司
  • 学校资源网站建设方案聊城网站建设
  • windows 做网站服务器python做的网站漏洞
  • 培训网站推荐网站内容该怎么做
  • 精通网站建设电子档朵朵软件网站建设
  • 铜山区规划建设局网站网站开发的甘特图
  • 访问网站速度慢中国最新军事新闻直播
  • 商城网站的psd模板免费下载哪里可以上传自己的php网站
  • 珠宝网站策划书网页设计的毕业设计