管道pipe
pipe是popen的底層函式
子程式呼叫 pipe3程式,傳給pipe3 管道的檔案描述符
pipe3對檔案描述符進行讀操作
實現不用程式之間的資料傳輸
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
int main(){
pid_t fork_result;
const char some_data[] = "123";
int file_pipes[2];
char buffer[BUFSIZ + 1];
int data_processed;
memset(buffer,'\0',sizeof(buffer));
if(pipe(file_pipes) == 0){
fork_result = fork();
//child thread
if(fork_result == 0){
sprintf(buffer,"%d",file_pipes[0]);
execl("pipe3","pipe3",buffer,(char *)0);
exit(0);
}else{
data_processed = write(file_pipes[1],some_data,strlen(some_data));
printf("%d - wrote %d bytes\n",getpid(),data_processed);
}
}
exit(0);
}
pipe3
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc,char *argv[]){
char buffer[BUFSIZ + 1];
int file_descriptor;
memset(buffer,'\0',sizeof(buffer));
sscanf(argv[1],"%d",&file_descriptor);
read(file_descriptor,buffer,BUFSIZ);
printf("get data:%s\n",buffer);
exit(0);
}
相關文章
- 對於Pipe管道之愛 - jessfraz
- OpenCL中的管道cl::Pipe的使用
- linux程式間通訊--管道(PIPE & FIFO)Linux
- Swoole 原始碼分析——基礎模組之 Pipe 管道原始碼
- Linux 核心最新高危提權漏洞:髒管道 (Dirty Pipe)Linux
- 在Linux中,管道(pipe)和重定向(redirection)的是什麼?Linux
- [Bash] pipe intro
- [Python] pipe模組Python
- pipe stderr into another process
- Python並行程式設計(九):多程式物件交換之pipe(管道)實現生產者-消費者模型Python並行行程程式設計物件模型
- 精讀《pipe operator for JavaScript》JavaScript
- 管道 |
- angular 管道Angular
- 【linux】管道!!!Linux
- redis管道Redis
- Filter管道Filter
- Linux 管道Linux
- [Linux]管道Linux
- Pandas - pandas.Series.pipe 函式函式
- Oracle vs PostgreSQL Develop(19) - PIPE ROWOracleSQLdev
- 介紹 Linux 中的管道和命名管道Linux
- 演算法鏈與管道(上):建立管道演算法
- 速度不夠,管道來湊——Redis管道技術Redis
- mongodb 聚合管道MongoDB
- windows命名管道Windows
- 管道系統
- Linux管道符Linux
- Linux 之管道Linux
- 小而美的 golang 部落格平臺 PipeGolang
- Python多程式之資料交換PipePython
- netty 管道傳遞Netty
- AngularJS 4(五)【管道】AngularJS
- linux管道詳解Linux
- linux——管道詳解Linux
- 有名管道程式碼
- 管道的學習
- 15.GO-管道Go
- IPC(一)---------匿名管道
- ASP.Net 管道模型 VS Asp.Net Core 管道 總結ASP.NET模型