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

中国建设银行网站首页怎么销户wordpress 伪静态 页面

中国建设银行网站首页怎么销户,wordpress 伪静态 页面,增城高端定制网站建设,wordpress主题开发ide管道是 毫不相关的进程进程间通信::命名管道 管道 首先自己要用用户层缓冲区#xff0c;还得把用户层缓冲区拷贝到管道里#xff0c;#xff08;从键盘里输入数据到用户层缓冲区里面#xff09;#xff0c;然后用户层缓冲区通过系统调用#xff08;write#xff09;写… 管道是 毫不相关的进程进程间通信::命名管道 管道 首先自己要用用户层缓冲区还得把用户层缓冲区拷贝到管道里从键盘里输入数据到用户层缓冲区里面然后用户层缓冲区通过系统调用write写到管道里然后再通过read系统调用被对方读端读取就要从管道拷贝到读端然后再显示到显示器上。 mkfifo命名管道 1号手册是指令。2号系统调用接口 创建一个管道p开头就是命名管道并不会直接刷新到磁盘中实际是个符号 这样会阻塞 这样会显示出来先输入左边的再输入右边的就会显示左右两边是两个进程 追加写入的方式但空间一直是0 所以这就是文件里大小一直是0的原因          你怎么知道打开的是同一个文件 正好符合前提 所以要创建两个可执行程序各自跑各自的创建一个common是为了方便使用头文件         client是客户   server是服务者 makefile中一下运行两个程序 mkfifo用程序的方式创建管道第一个参数是要创建的这个管道在那个路径下叫什么名字也就是要保持唯一性的那些点第二个是创建一个管道 这里是3号手册是函数。 返回 -1创建失败  创建一个共享文件 ./myfifo server.cc和client.cc想看到同一个文件包含上头文件就可以了 这里先用server控制管道文件 创建管道失败了设置为1 ,如果失败了就exit(1) 谁控制的先运行运行谁就好了 make一下生成两个可执行程序,因为是server控制的所以要先运行server 运行后就会多一个myfifo命名管道 命名管道的删除 想删除这个myfifo用unlink(成功返回0 失败返回-1  命令行删除 代码也可以删(成功返回0 失败返回-1)头文件是unistd.h 创建完文件5秒后就删除了 思路 用到了open 打开管道文件第二个参数是只进行读取 enum中 fd0打开失败了 服务端读取数据 客户端只要用就行 第二个参数就是打开文件为了写入的 用户输入完成以后就要发送输入的消息到另一端 打开顺序一定 然后打开的顺序就一定了先打开server然后再打开另一个cc 先打开服务端会阻塞在这里然后再打开客户端进行输入 右边输入啥左边就会有啥 无法输入空格问题getline 但有一个问题就是cin没法输入空格要用到getline 会发现一个问题客户端退出了服务端还没退出 客户端退出会read到0所以服务端读端也要退出 改正 sever端 等待写入方式打开后自己才会打开文件向后执行open阻塞了 优化一下 写成进程池的样子 日志 创建一个新文件 用到了可变参数(形参实例化是从右到左) 可变参数必须右至少一个具体的参数 举个例子步骤s指向可变部分 这里的sum第一个参数是几个数求和的意思传不同的类型不可以的因为上面va_arg里已经写死了 开始写日志level日志等级 先定义时间time时间戳 ctime 头文件 打印具体年月日  年是从1900年开始的 年月日时分秒 vsnprint vsnprint跟不带v的区别就是去除了...换成了可变参数部分 把日记等级转换成字符串风格,所有有可能的地方都需要返回 改进 va_start(s,format)用format修饰s的指向上面的sum是s,n),类似 这里要用c_str因为返回的是string 用完以后再用end 这里是往显示器打印的,这里要*3以为%s和%s中间有几个空格空间不够 把这里修改一下,打开失败的话 这样就形成日志了 打印最后一行就是正常打开 这里也改一下 测试先./server然后会阻塞然后./client就会打印出,logmessage里的信息 为啥./client之前不打印 因为等待写入方式打开后自己才会打开文件向后执行open阻塞了 往文件里打印上面是往屏幕打印 先把这些内容全放在Log,日志类 分类 1向屏幕打印 2向一个文件打印 3分类打印 打印格式printMethod 这里构造默认往屏幕去印 析构 打印方式也改一下 打印单个 以0666的权限打开这个文件 打印多个文件添加一下level 实现一下 优化一下 以后再打印日志就不用这样打了 这样就可以了要记住先创建一个Log对象 这样以后就写入一个文件了写入log.txt 这样就把日志分类了 结果 但是日志文件这么多太混乱了 这样操作后就统一进入一个文件了 makefile也修改一下先把path定义的log目录创建一下 日志放入一个文件测试结果 日志分类测试结果 log.hpp里头文件 优化一下调用 然后修改一下server.cc client.cc #include common.hpp #include log.hppint main() {int fd open(FIFO_FILE,O_WRONLY);if(fd 0){perror(open);exit(FIFO_OPEN_ERR);}string line;while(true){cout Please Enter ;// cin line;getline(cin, line);write(fd, line.c_str(),line.size());}close(fd);return 0; } common.hpp #pragma noce #includeiostream #includevector #includestring #includeunistd.h #include sys/types.h #include sys/wait.h #include sys/stat.h #includefcntl.h #includestdio.h using namespace std;#define FIFO_FILE ./myfifo #define MODE 0664 //用于设置文件的权限0664代表着8进制写法4是其他用户可读不可写enum {FIFO_CREATE_ERR 1,FIFO_DELETE_ERR,FIFO_OPEN_ERR };class Init { public:Init(){//创建管道int n mkfifo(FIFO_FILE,MODE);if(n -1){perror(mkfofi);exit(FIFO_CREATE_ERR);}}~Init(){//删除命名管道int m unlink(FIFO_FILE);if(m -1){perror(unlink);exit(FIFO_DELETE_ERR);} } }; log.hpp #pragma noce #include stdarg.h // #include common.hpp #include iostream #include stdio.h #includestring.h//strerror(errno)头文件 #includestdlib.h using namespace std;#define Info 0 #define Debug 1 #define Warning 2 #define Error 3 #define Fatal 4 // 致命的//打印方式 #define Screen 1 //屏幕 #define Onefile 2 //一个文件 #define Classfile 3 //多个文件#define LogFile log.txt class Log { public:Log(){printMehod Screen;path ./log/;}void Enable(int method){printMehod method;}string levelToString(int level){switch (level){case Info:return Info;case Debug:return Debug;case Warning:return Warning;case Error:return Error;case Fatal:return Fatal;default:return ;}return ;}// void logmessage(int level, const char *format, ...)// {// time_t t time(nullptr);// struct tm *ctime localtime(t);// char leftbuffer[1024];// snprintf(leftbuffer, sizeof(leftbuffer), [%s][%d-%d-%d %d:%d:%d], levelToString(level).c_str(),// ctime-tm_year 1900, ctime-tm_mon 1, ctime-tm_mday, ctime-tm_hour, ctime-tm_min, ctime-tm_sec);// va_list s;// va_start(s, format);// char rightbuffer[1024];// vsnprintf(rightbuffer, sizeof(rightbuffer), format, s);// va_end(s);// // 格式默认部分自定义部分// char logtxt[1024 * 3];// snprintf(logtxt, sizeof(logtxt), %s %s\n, leftbuffer, rightbuffer);// //cout logtxt endl; // 暂时打印// printLog(level, logtxt);// }void operator()(int level, const char* format, ...){time_t t time(nullptr);struct tm *ctime localtime(t);char leftbuffer[1024];snprintf(leftbuffer, sizeof(leftbuffer), [%s][%d-%d-%d %d:%d:%d], levelToString(level).c_str(),ctime-tm_year 1900, ctime-tm_mon 1, ctime-tm_mday, ctime-tm_hour, ctime-tm_min, ctime-tm_sec);va_list s;va_start(s, format);char rightbuffer[1024];vsnprintf(rightbuffer, sizeof(rightbuffer), format, s);va_end(s);// 格式默认部分自定义部分char logtxt[1024 * 3];snprintf(logtxt, sizeof(logtxt), %s %s\n, leftbuffer, rightbuffer);//cout logtxt endl; // 暂时打印printLog(level, logtxt);}void printLog(int level, const string logtxt){switch(printMehod){case Screen:cout logtxt endl;break;case Onefile:printOneFile(LogFile, logtxt);//log.txt break;case Classfile:printClassFile(level, logtxt);break;default:break;}}void printOneFile(const string logname, const string logtxt){// ./log/ log.txtstring _logname path logname;int fd open(_logname.c_str(), O_WRONLY|O_CREAT|O_APPEND, 0666);if(fd 0) return;write(fd, logtxt.c_str(), logtxt.size());close(fd);}void printClassFile(int level, const string logtxt){string filename LogFile;//log.txt filename .;//log.txt. filename levelToString(level); //log.txt.Debug/Waring/FatalprintOneFile(filename, logtxt);}~Log(){} private:int printMehod;string path; }; makefile .PHONY:all all:client server server:server.ccg -o $ $^ -g -stdc11mkdir log client:client.ccg -o $ $^ -g -stdc11 .PHONY:clean clean:rm -f server client server.cc #include common.hpp #include log.hppint main() {//logmessage(Info, hello);//创建管道Init init;Log log;//log.Enable(Onefile);log.Enable(Classfile);// //创建管道// int n mkfifo(FIFO_FILE,MODE);// if(n -1)// {// perror(mkfofi);// exit(FIFO_CREATE_ERR);// }// sleep(5);//打开管道int fd open(FIFO_FILE,O_RDONLY);if(fd 0){//log.logmessage(Fatal, error string:%s,error code:%d,strerror(errno), errno);//优化后log(Fatal, error string:%s,error code:%d,strerror(errno), errno);exit(FIFO_OPEN_ERR);}// log.logmessage(Info, server open file done,error string:%s,error code:%d,strerror(errno), errno);// log.logmessage(Warning, server open file done,error string:%s,error code:%d,strerror(errno), errno);//优化后log(Info, server open file done,error string:%s,error code:%d,strerror(errno), errno);log(Warning, server open file done,error string:%s,error code:%d,strerror(errno), errno);//......//开始通信while(true){char buffer[1024] {0};int x read(fd, buffer, sizeof(buffer));if(x 0){buffer[x] 0;cout client say# buffer endl;}else if(x 0){//log.logmessage(Debug, sclient quit too!,error string:%s,error code:%d,strerror(errno), errno);//优化后log(Debug, sclient quit too!,error string:%s,error code:%d,strerror(errno), errno);//cout client quit too!\n endl;break;}else break;}close(fd);// //删除命名管道// int m unlink(FIFO_FILE);// if(n -1)// {// perror(unlink);// exit(FIFO_DELETE_ERR);// }return 0; }
http://www.w-s-a.com/news/565397/

相关文章:

  • 自学网站编程网站名称需要注册吗
  • 网站后台管理系统怎么添加框安徽省工程建设协会网站
  • 雨花台网站建设wordpress找回
  • 四川哪家网站推广做的好网站开发人才需求
  • 什么网站可以找手工活做一站式服务平台官网
  • 做购物网站的步骤网站核心词如何做
  • 做品牌设计网站公司网站没做301怎么做301
  • 服务流程企业网站wordpress文章的使用
  • 网站开发组合淘宝网站开发选什么类目
  • 广东手机网站建设个人电脑做网站主机
  • 健身俱乐部网站开发文档建一个网站需要什么条件
  • 买的网站模板怎么做建设行政管理部门网站
  • 怎么让百度多收录网站关键词seo深圳
  • 陕西交通建设集团网站体检个人网站设计模板田田田田田田田田
  • ae模板网站推荐安徽建筑信息平台
  • 新网站建设代理商wordpress模板商店
  • 中国十大设计素材网站wordpress发布失败
  • 江西省建设监理网站网页制作与设计是什么
  • 在招聘网站做销售怎么样网址你懂我意思正能量不用下载ios
  • 高端企业网站定制公司企业网站2000元
  • 成都网站建设:河北省建设工程质量监督网站
  • 四川省建设厅官网信息查询平台北京seo关键词优化外包
  • 网站建设响应式是什么意思wordpress弹窗打开网页
  • 做美工需要参考的网站漳州做网站的公司
  • 用源码建设网站关于网站开发的自我评价
  • 网站设计师图片自助建站编辑器
  • 网站建设的常用技术有哪些深圳建筑工地招工
  • 做软装找图片的网站wordpress 替代
  • 制作网站的后台公众号做视频网站会封吗
  • 广西企业建站邯郸景区网站制作