c语言中调用echo传递字符串的使用例子

今天搬砖时,偶然间需要在C语言中调用shell命令将字符串写入某个文件中。刚开始想到c语言调用shell命令,想到的无非就是两种方法:

1、system();

2:popen();

两者的区别就在于前者会造成阻塞,而后者不会。简单来说前者是同步的,命令执行完毕才返回,而后者是异步的,不需要等待命令完成。

但是写着写着突然发现,上面的两种方法只能执行拥有固定参数的echo,倘若其要传递的参数是临时获取到,那怎么办呢?

经过一番思索,解决方案如下:

char buf[512];
sprintf(buf,"echo %s > tem.txt",str);
system(buf);

首先定义一个缓冲区buf,大小自己定。然后使用sprintf将需要传递的字符串和echo命令拼接放进buf中,最后将buf传递给system,由其将buf中的命令取出执行。

这样就完美解决了这个问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值