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

网站开发技术都有哪些建设网站的市场定位

网站开发技术都有哪些,建设网站的市场定位,天津网站建设开发维护,wordpress 分享按钮插件使用有名管道实现,一个进程用于给另一个进程发消息,另一个进程收到消息后,展示到终端上,并且将消息保存到文件上一份 代码: /*******************************************/ 文件名:create.c /********…

使用有名管道实现,一个进程用于给另一个进程发消息,另一个进程收到消息后,展示到终端上,并且将消息保存到文件上一份

代码:

/*******************************************/

文件名:create.c

/*******************************************/

#include <myhead.h>
int main(int argc, char const *argv[])
{//创建有名管道文件if (mkfifo("./linux", 0664) == -1){perror("mkfifo error");return -1;}getchar();system("rm linux");return 0;
}

/*******************************************/

文件名:send.c

/*******************************************/

#include <myhead.h>
int main(int argc, char const *argv[])
{//以写的形式打开管道文件int wfd = open("./linux", O_WRONLY);if (wfd == -1){perror("open error");return -1;}printf("管道文件已经打开\n");//发送数据char wbuf[128] = "";while (1){printf("请输入>>>>");fgets(wbuf, sizeof(wbuf), stdin);wbuf[strlen(wbuf) - 1] = 0;//将数据发送给到管道中write(wfd, wbuf, strlen(wbuf));//判断数据if (strcmp(wbuf, "quit") == 0){break;}}//关闭文件描述符close(wfd);return 0;
}

/*******************************************/

文件名:get.c

/*******************************************/

#include <myhead.h>
int main(int argc, char const *argv[])
{//以读的形式打开文件int rfd = open("./linux", O_RDONLY);if (rfd == -1){perror("open error");return -1;}int cfd = open("./h.txt", O_WRONLY);if (cfd == -1){perror("open error");return -1;}printf("管道文件读端打开\n");//定义接受容器char rbuf[128] = "";while (1){bzero(rbuf, sizeof(rbuf));//读取数据read(rfd, rbuf, sizeof(rbuf));if (strcmp(rbuf, "quit") == 0){break;}printf("收到消息为:%s\n", rbuf);write(cfd,rbuf,strlen(rbuf));}//关闭文件描述符close(rfd);close(cfd);return 0;
}

结果:

使用有名管道实现两个进程间相互通信

代码:

/*******************************************/

文件名:create1.c

/*******************************************/

#include <myhead.h>
int main(int argc, char const *argv[])
{//创建有名管道文件if (mkfifo("./linux_first", 0664) == -1){perror("mkfifo error");return -1;}getchar();system("rm linux_first");return 0;
}

/*******************************************/

文件名:create2.c

/*******************************************/

#include <myhead.h>
int main(int argc, char const *argv[])
{//创建第二个有名管道文件if (mkfifo("./linux_next", 0664) == -1){perror("mkfifo error");return -1;}getchar();system("rm linux_next");return 0;
}

/*******************************************/

文件名:one.c

/*******************************************/

#include <myhead.h>
sem_t sem;
void *task1(void *arg)
{//只读的形式打开管道文件2int rfdo = open("./linux_next", O_RDONLY);if (rfdo == -1){perror("open error");return NULL;}//定义接收容器char rbufo[128] = "";while (1){bzero(rbufo, sizeof(rbufo));//读取数据read(rfdo, rbufo, sizeof(rbufo));if (strcmp(rbufo, "quit") == 0){sem_post(&sem);break;}printf("对方的消息>>>%s\n", rbufo);sem_post(&sem);}//关闭文件描述符close(rfdo);pthread_exit(NULL); //退出线程
}
void *task2(void *arg)
{//只写的形式打开管道文件1int wfdo = open("./linux_first", O_WRONLY);if (wfdo == -1){perror("open error");return NULL;}//发送数据char wbufo[128] = "";while (1){sem_wait(&sem);printf("对话>>>");fgets(wbufo, sizeof(wbufo), stdin);wbufo[strlen(wbufo) - 1] = 0;write(wfdo, wbufo, strlen(wbufo));if (strcmp(wbufo, "quit") == 0){break;}}//关闭文件描述符close(wfdo);
}
int main(int argc, char const *argv[])
{//初始化无名信号量sem_init(&sem, 0, 1);//定义变量存储线程号pthread_t tido = -1;if (pthread_create(&tido, NULL, task1, NULL) != 0){printf("pthread_create error\n");return -1;}//定义变量存储线程号pthread_t tido2 = -1;if (pthread_create(&tido2, NULL, task2, NULL) != 0){printf("pthread_create error\n");return -1;}//阻塞回收线程的资源pthread_join(tido, NULL);pthread_join(tido2, NULL);//销毁无名信号量sem_destroy(&sem);return 0;
}

/*******************************************/

文件名:another.c

/*******************************************/

#include <myhead.h>
sem_t sem;
void *task1(void *arg)
{//只写的形式打开管道文件2int wfda = open("./linux_next", O_WRONLY);if (wfda == -1){perror("open error");return NULL;}//发送数据char wbufa[128] = "";while (1){sem_wait(&sem);printf("对话>>>");fgets(wbufa, sizeof(wbufa), stdin);wbufa[strlen(wbufa) - 1] = 0;write(wfda, wbufa, strlen(wbufa));if (strcmp(wbufa, "quit") == 0){break;}}//关闭文件描述符close(wfda);pthread_exit(NULL); //退出线程
}
void *task2(void *arg)
{//只读的形式打开管道文件1int rfda = open("./linux_first", O_RDONLY);if (rfda == -1){perror("open error");return NULL;}//定义接收容器char rbufa[128] = "";while (1){bzero(rbufa, sizeof(rbufa));//读取数据read(rfda, rbufa, sizeof(rbufa));if (strcmp(rbufa, "quit") == 0){sem_post(&sem);break;}printf("对方的消息>>>%s\n", rbufa);sem_post(&sem);}//关闭文件描述符close(rfda);pthread_exit(NULL); //退出线程
}
int main(int argc, char const *argv[])
{//初始化无名信号量sem_init(&sem, 0, 0);//定义变量存储线程号pthread_t tida = -1;if (pthread_create(&tida, NULL, task1, NULL) != 0){printf("pthread_create error\n");return -1;}//定义变量存储线程号pthread_t tida2 = -1;if (pthread_create(&tida2, NULL, task2, NULL) != 0){printf("pthread_create error\n");return -1;}pthread_join(tida, NULL);pthread_join(tida2, NULL);//销毁无名信号量sem_destroy(&sem);return 0;
}

结果:

思维导图:

http://www.yayakq.cn/news/28865/

相关文章:

  • wordpress主题的网站创业商机网餐饮
  • 网页设计师个人网站wordpress微信免签支付接口
  • 百度推广手机网站检测自己怎么在网上开店
  • 网站不备案可以吗婚纱网站建设案例
  • 免费建站好不好怎么将html变成为网址
  • 兼容性视图中显示所有网站营销版网站
  • 阳泉网站建设公司wordpress首页文章图片不显示
  • 网站建设 申请报告WordPress图片关闭永久链接
  • 哪个网站可以做头像企业网站推广策划方法
  • 承接app网站开发的广告微信小程序开发流程
  • 用ps做零食网站模板免费安全网站大全入口
  • 学校网站建设风险分析翔安建设局网站
  • wordpress个人建站教程做网站用那种数据库
  • asp网站转html七牛WordPress代码
  • 库尔勒网站建设哪家专业中国建设银行网站分析
  • 图片分享网站建设网页前端框架
  • 自己做投票的网站长安东莞网站推广
  • 网站建设 十佳制作青岛公司做网站的价格
  • 厦门网站建设制作多少钱赣州热门网站
  • 网页设计 参考网站网站开发运营费用
  • 专做农产品跨境的网站有佛山做网站
  • 质控中心网站建设申请进入网站后台ftp空间后怎样上传
  • 英语门户网站织梦源码wordpress注册不成功
  • 奢侈品的网站设计wordpress 延迟加载插件
  • 汕头网站关键词优化教程建设工程教育网官网学员登录
  • 手把手教你入侵网站修改数据建筑网站建设需要注意什么
  • 一个人免费视频在线观看高清妇科医院网站优化服务商
  • 怎么自己做网站模板邯郸做网站多少钱
  • 营销网站建设制作上海公司查询官网
  • 百度做网站和推广效果怎么样网页制作工具中flash可以让网页动起来