首页 > 系统相关 >逆向 | linux c父子进程通信模板

逆向 | linux c父子进程通信模板

时间:2024-11-07 17:19:38浏览次数:4  
标签:逆向 fields linux pid getpid printf include id 模板

逆向 | linux c父子进程通信模板

#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>
 
int main(){
        pid_t pid;      //parent_id
        pid_t cid;      //child_pid
        printf("Before fork Process id: %d\n", getpid());
        
	int fields[2]; // create pipe
	char buffer[1024] = {0};
	if(pipe(fields)!=0){
		printf("Createpipe error \n");
		exit(1);
	}

	cid = fork();
        if(cid==0){     // child
                printf("Child process id(my parent id is %d): %d\n", getppid(), getpid());
		close(fields[0]);
		//char s[] = "from child! \n";
                //write(fields[1], s, sizeof(s));
		//printf("send ok \n");
		// 将子进程的输出由标准输出重定向到 fields 的管道写端上
  		dup2(fields[1], 1);
		// 替换执行脚本
		execl("/bin/ls", "ls", "-la", NULL);

		exit(0);
        }else {         // father
                printf("Parent process id: %d\n", getpid());
		wait(NULL);
		printf("ready to recv \n");
		int x = read(fields[0], buffer, sizeof(buffer));
		printf("recv %d: %s \n",x,  buffer);
		//close(fields[0]);
        }
        printf("After fork, Process id: %d\n", getpid());
        return 0;
}


标签:逆向,fields,linux,pid,getpid,printf,include,id,模板
From: https://www.cnblogs.com/Mz1-rc/p/18533296

相关文章

  • blockchain | web3.py交互模板
    blockchain|web3.py交互模板exp:fromweb3importWeb3fromweb3.middlewareimportSignAndSendRawMiddlewareBuilderimportjsonw3=Web3(Web3.HTTPProvider('http://127.0.0.1:8545'))ifnotw3.is_connected(): print('connerr') exit(-1)......
  • linux部署本地测试服务器,部署showdoc,并挂载额外硬盘用于windows共享文件
    过程中坑还是挺多的,在这里做个记录,方便他人也方便自己一、安装linux系统下载镜像使用rufus制作启动盘(linux系统不能使用大白菜等软件)更改网络配置(ifcfg-ens33是网卡名,看个人主机配置而定)vi/etc/sysconfig/network-scripts/ifcfg-ens33将ONBOOT="no"改为ONBOOT=“yes......
  • Mysql官网下载Windows、Linux各个版本
    下载软件官网地址:https://www.mysql.com/百度网盘分享的文件:Mysql链接:https://pan.baidu.com/s/1nT3oI-hXiQvZqdhi2Wv17g 提取码:8l4r 百度网盘只提供了Windows版本的,其他版本可以官网下载进入官网后,点击-看下图(说一万句不如一张图来得实在)往下滑屏幕,在点击在点击......
  • 科普文:软件架构Linux系列之【从硬件角度了解固态盘SSD】
    概叙科普文:软件架构Linux系列之【并发问题的根源:CPU缓存模型详解】-CSDN博客科普文:软件架构Linux系列之【从硬件角度了解内存DRAM和DDR5】-CSDN博客科普文:软件架构Linux系列之【读懂Linux内存管理:mmap(Memory-MappedFile)内存映射文件】-CSDN博客科普文:软件架构Linux系列之......
  • 十五 MyBatis的逆向工程
    十五、MyBatis的逆向工程所谓的逆向工程是:根据数据库表逆向生成Java的pojo类,SqlMapper.xml文件,以及Mapper接口类等。要完成这个工作,需要借助别人写好的逆向工程插件。思考:使用这个插件的话,需要给这个插件配置哪些信息?pojo类名、包名以及生成位置。SqlMapper.xml文件名以......
  • 【Linux内核设计思想】三、Linux内核的启动过程
    欢迎关注博主Mindtechnist或加入【智能科技社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关注公粽号《机器和智能》回复关键词“python项目实战......
  • Linux 服务器开启秘钥登陆方式,现在root直接登陆
    1.重新加载sshd服务,使其配置更改生效本地制作公钥与私钥,将公钥上传到/root/.ssh/authorized_keys文件,如果文件夹和文件没有就创建出来vi/root/.ssh/authorized_keys保存就可以只能用私钥登陆服务器了,不需要使用root账号密码,而且私钥也没有密码2配置sshd服务支持密钥认证......
  • Linux:认识文件系统
    一、认识硬件——磁盘1.1物理构成   磁盘是唯一的一个机械设备,也是一个外设!   以前的老式电脑上装的就是机械磁盘,现在由于用户对使用计算机的速度要求越来越高,现在我们普通人使用的电脑基本上都是用的SSD固态硬盘,SSD固态硬盘并没有像机械磁盘那样的机械运动,读写......
  • Linux 下搭建 Spark3 + Jupyter 环境
    最近想着来玩一玩大数据,前段时间集中过了一遍java,最近又看了一些基础的scala,我感觉吧,我都不想学.还是觉得用sql,javascript,python这种脚本语言操作起来顺手,但这并不影响对这个大数据生态的理解和学习.这里主要是来记录一下spark+jupyter环境的搭建,说实......
  • rocky linux详细安装过程
     Centos已经停止维护,我们这里安装一个rockylinux,其也是基于redhat的开源linux系统,也算是与Centos同宗同源了,个人使用可以作为Centos的替代品。1.rockylinux镜像下载rockeylinux下载地址: 下载–RockyLinux,不过这个地址下载特别慢我们这里直接去阿里的镜像站下载......