linux shell和c程序之间互相传递数据

有时候可能需要C程序和shell脚本之间互相传递数据,下面实现了两者之间数据的传递操作。

用popen实现了shell的输出参数想C程序的传递。

int getcount()
{
	FILE *fp;
	int total=0;	
	char buff[MAXLINE]={0};	
	char command[]={"./count"};		         //count为已写脚本
	fp=popen(command,"r");				 //调用进程读取command的输出
	while( fgets( buff, MAXLINE, fp )!= NULL)        //将管道数据读入缓冲区buff中  
	fputs(buff,stdout);
	total=atoi(buff);				
	pclose(fp);	
	return total;
	
}

那么,c程序向shell脚本传参数怎么传递呢,请看下面的实例:

 

int main()
{
	char *name[]={ "1.txt","2.txt" };
	if( execl("./script", "./script " ,name[1], (char *)0 ) == -1 )
	{
		perror("execl");
		exit(EXIT_FAILURE);
	}	
    return 0;
}


其中name[1]为字符指针,因为我的script脚本需要接收一个文件名作为参数,可以通过execl直接把文件名这个字符串直接传递给脚本使用。真是不错


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值