当前位置:  技术问答>linux和unix

怎样在linux下面实现类似windows的sendmessage功能

    来源: 互联网  发布时间:2016-01-12

    本文导语:  windows下面可以利用sendmessage将一个线程的数据发送到另外一个线程处理,直到对方处理结束才返回。linux下面如何实现类似的方案呢?某个线程通知另外一个线程处理数据,知道处理完成才返回 | ...

windows下面可以利用sendmessage将一个线程的数据发送到另外一个线程处理,直到对方处理结束才返回。linux下面如何实现类似的方案呢?某个线程通知另外一个线程处理数据,知道处理完成才返回

|
linux下用信号,与win的消息差不多,
发送消息用kill
接收消息用信号接收函数sigaction

|
处理完再返回?kill好像不是处理完才返回,应该与PostMessage差不多!

|
wall 命令也行

|
我前些天也找这个来着,
首先windows得sendmessage并不是直到对方处理结束才返回
他是把你发的消息挂到对方消息队列的末尾,
linux基本没有那马方便的方法,参考:

Linux下进程间通信的几种主要手段简介:

    1.管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信; 

    2.信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;Linux除了支持Unix早期信号语义函数sigal外,还支持语义符合Posix.1标准的信号函数sigaction(实际上,该函数是基于BSD的,BSD为了实现可靠信号机制,又能够统一对外接口,用sigaction函数重新实现了signal函数); 

    报文(Message)队列(消息队列):消息队列是消息的链接表,包括Posix消息队列systemV消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。

    共享内存:使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。 

    信号量(semaphore):主要作为进程间以及同一进程不同线程之间的同步手段。 

    套接口(Socket):更为一般的进程间通信机制,可用于不同机器之间的进程间通信。起初是由Unix系统的BSD分支开发出来的,但现在一般可以移植到其它类Unix系统上:Linux和System V的变种都支持套接字。 

|
楼上兄弟,SendMessage是直到消息处理函数结束才返回的!PostMessage才是你说的那样!

    
 
 

您可能感兴趣的文章:

  • 请问Linux字下有没有类似于Dos下Turbo C的集成环境编辑器?如果没有,有一个类似Dos的Edit编辑器都不错,至少有下拉菜单.
  • 红旗LINUX 如何进入类似于DOS的命令界面啊
  • 请问各位linux开发大虾,linux下有类似VC中depends的工具可以查看文件调用了哪些so文件吗?
  • Linux有没有类似bat文件,如何编写。
  • 请问Linux下有没有类似Windows光盘Autorun的功能?
  • linux下C有没有类似于windows的资源处理办法
  • Linux有类似Windows的注册表的东西吗?
  • 服务器是linux系统,windows怎么共享上网?有没有类似sygate之类的软件?
  • 请问Linux中提供类似于Win2000的Dfs功能么?
  • 有没有类似msdn的linux的帮助文件
  • Linux下有类似于Windows的ipconfig命令吗?
  • unix/linux api有类似msdn的手册么?
  • 请问,在linux下有没有类似messagebox这个函数。
  • linux中有类似于debug的程序吗?
  • linux 下类似GetFileVersionInfo 的函数是什么啊
  • 有没有在Window下运行的关于Linux函数的帮助(类似msdn)?
  • Linux下有没有类似UltraEdit的软件?支持语法高亮和页签.
  • linux下有类似win下的远程登陆工具有么? (具体要求见内)
  • 请问Linux下有没有类似audio compression manager的东东,急,急,急!!!
  • 散完全部分请教:linux下面有没有类似windows下面rasdial的命令
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Windows和Linux下C++类成员方法作为线程函数方法介绍
  • x-windows如何安装在linux(rdehat9)上面呢,是不是x-windows也分windows和linux版本的吗?
  • tar.xz如何解压:linux和windows下tar.xz解压命令介绍
  • windows 和linux双系统,重装windows后,无法启动linux?
  • MTU介绍以及在windows和linux下怎么设置MTU值
  • linux和windows串口问题!?linux向windows端发送,第一次write正常,继续write,windows接收到的就变成乱码了,这是什么原因??????
  • Linux和windows下用mysql c++ library操作Mysql数据库
  • windows,linux如何实现文件共享(windows,linux安在同一台机)?
  • 请问windows 2000怎么访问linux?我要从linux下拷文件到windows下
  • 晕哦,刚在windows下用虚拟机装个linux,不知道怎么把windows下的文件复制到linux里???? iis7站长之家
  • Windows2000和Linux双操作系统,Linux系统有问题,我直接把Linux分区删除后,Windows2000进不去了,怎么办???
  • 晕哦,刚在windows下用虚拟机装个linux,不知道怎么把windows下的文件复制到linux里????
  • 用linux(服)windows(客)传输文件,windows端可以,linux端不可以,怎么回事???
  • 同机装有Windows和Linux两套系统(先装Win后装Linux),如何使计算机使用Windows的启动模块而不是Linux的启动模块?
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户
  • 域内共享的问题?Linux机器可以访问Window机器,但是Window机器不能访问Linux机器?
  • 怎么在Linux下改windows系统文件啊,我把windows的BOOT.INI改了,windows启动不了
  • 请问如何在WINDOWS中访问linux下的文件,并把Windows下的文件复制到linux下的分区中
  • 为什么虚拟机VM里的linux ping不通window 7,但是window 7可以ping通linux?
  • ■■有关RH Linux的在线更新(OnLine Update)?Linux下有没有如Windows下的Windows Update一样的工具呀,可下载补丁和Update组件?
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户 100分相赠
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3