admin管理员组

文章数量:1643280

Linux管道

把一个进程链接到另一个进程的数据流称为管道

  • 头文件

    #include<unistd.h>;

  • 功能

    创建一无名管道原型,int pipe(int fd[2]);

  • 参数fd
    文件描述符数组,其中fd[0]表示读端,fd[1]表示写端;

  • 返回值
    成功返回0,失败返回错误代码。

通常用fork()函数共享管道

子进程拷贝父进程,也拷贝了管道信息,所以父子进程共享管道。

应用场景

Linux系统交互过滤有效信息,在终端输入ip addr之后会出现很多ip地址但是会掺杂一些无用的信息,我们要截取信息,获得想要的ip。

下面这个方法,判断终端过滤到的IP是不是floatIP,如果是就返回true,否则返回false。

void Grep(char *floatIP)
{
	char command[128] = {0};
	snprintf(command, 128, "ip addr |grep 'inet %s' | awk '{print $2}'", floatIP);
	FILE *fp = NULL;
	fp = popen(command, "r");
	if(!fp)
	{
		pclose(fp);
		return false;
	}
	char buffer[1024] = {0};
	if(fgets(buffer, 1024, fp))
	{
		pclose(fp);
		return true;
	}
	pclose(fp);
	return false;
}

同一网段相邻电脑文件拷贝

应用场景

将本机10.1.1.186中的文件拷贝到隔壁电脑10.1.1.2中,文件名为filename

Linux指令

scp filename root @10.1.1.2:/opt

本文标签: 网段管道文件电脑Linux