易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux 下实现两个管道双向数据流

原文地址:http://www.wangzhongyuan.com/archives/488.html
以下是一个Linux/Unix下由两个管道提供双向数据流的C程序,这是操作系统课程中经常使用的基本程序
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <stdio.h>
#include <string.h>
int main()
{
int fd1[2],fd2[2],cld_pid,status;
char buf[200], len;

if (pipe(fd1) == -1) // 创建管道1
{
printf("creat pipe1 error\n");
exit(1);
}
if (pipe(fd2) == -1) // 创建管道2
{
printf("creat pipe2 error\n");
exit(1);
}

if ((cld_pid=fork()) == 0) //子进程
{
close(fd1[1]); // 子进程关闭管道1的写入端
close(fd2[0]); // 子进程关闭管道1的读出端

//子进程读管道1
len = read(fd1[0],buf,sizeof(buf));
printf("\n这是在子进程:子进程从管道1中读出的字符串 -- %s",buf);

//子进程写管道2
strcpy(buf,"子进程写入管道2的字符串");
write(fd2[1],buf,strlen(buf));
printf("\n这是在子进程:子进程成功写入如下语句:%s\n",buf);

exit(0);
}
else //父进程
{
close(fd1[0]); // 父进程关闭管道1的读出端
close(fd2[1]); // 父进程关闭管道2的写入端

//父进程写管道1
strcpy(buf,"父进程写入管道1的字符串");
write(fd1[1],buf, strlen(buf));
printf("miaojing\n");

//父进程读管道2
len = read(fd2[0],buf,sizeof(buf));
printf("\n这是在父进程:父进程从管道2中读出的字符串 -- %s\n",buf);
exit(0);
}
}


相关文档:

实战Linux Bluetooth编程(六) L2CAP编程实例

例一:发送Signaling Packet:
Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.
多个Command可以在一个C-frame(control frame)中发送。
 如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identi ......

Linux环境的AMP安装 MSSQL扩展安装


Linux要安装mssql扩展,必须首先安装freetds,安装过程如下:
1、假设源文件目录为/webServ,安装目录为/opt/freetds。
1) >cd /webServ
2) 下载, >wget ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
3) 解压, >tar -zxvf freetds-stable.tgz
4) 进入, >cd freetds-0。 ......

JAVA得到网卡物理地址(windows和Linux)

在我们在写程序的过程中,有些时候需要知道一些电脑的硬件信息,比如我们写一些需要注册的程序的时候,就需要得到某个电脑特定的信息,一般来说,网卡的物理地址是不会重复的,我们正好可以用它来做为我们识别一台电脑的标志.那如何得到网卡的物理地址呢?我们可以借助于ProcessBuilder这个类,这个类是JDK1.5新加的,以前也可以用Ru ......

学习linux几点忠告 转

Linuxmine收集整理 作者:linux宝库 (http://www.linuxmine.com) 1. 不要当“传教士”
很多人在讨论区不断的引起 "Linux vs. Windows" 之类的讨论,甚至争的面红耳赤,这是没有必要的。
这种争论是浪费时间而没有任何用处的。对,你花了一下午,用许多事实“捍卫”了 “Linux 比 Windows 好” 这个说法。但是 Win ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号