shell脚本:hello.sh

#!/bin/bash
echo "i am in shell script"
echo "param 1 is $1"
echo "param 2 is $2"
variable=$[ $ + $ ]
echo "sum is $variable"

system接口:system.c

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h> void main(void)
{
printf("i am in c code!\r\n"
system("/bin/bash ./hello.sh 10 20);
}

输出

i am in c code!
i am in shell script!
param is
param is
sum is

 execlp接口:execlp.c

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h> void main(void)
{
int ret = ;
int param1 = ;
int param2 = ; printf("i am in c code!\r\n");
if(fork() == )
{
printf("execlp...........\r\n");
ret = execlp("/bin/bash", "bash", "hello.sh", &param1, &param2, NULL);
if(ret < )
{
printf("execlp failed!\r\n");
return;
}
}
}

这其中execlp的参数不管怎么填都得不到正确运行的结果

使用system获取system本身的返回值和脚本的返回值

int system_func(const char *command)
{
int status;
int ret; status = system(command);
#ifdef DEBUG
printf("status is 0x%x\n", status);
#endif
if(- == status)
{
printf("%s:system error\n", __FUNCTION__);
return -;
}
else
{
if(WIFEXITED(status))
{
if( == WEXITSTATUS(status))
{
ret = (status>>)&0xFF;
return ret;
}
else
{
printf("%s:run shell script fail, script exit code:%d\n", __FUNCTION__, WEXITSTATUS(status));
return -;
}
}
else
{
printf("%s:system fail, exit status=%d\n", __FUNCTION__, WEXITSTATUS(status));
return -;
}
}
}

[shell]system和execlp简单示例的更多相关文章

  1. akka简单示例-1

    刚刚开始接触akka,网上找了2个简单示例,并在公司运营机器上尝试,踩了一些坑,在此记录. 1. 本地hello world [torstan@sparkb5-i ~/akka_example/hel ...

  2. 【Apache Kafka】二、Kafka安装及简单示例

    (一)Apache Kafka安装 1.安装环境与前提条件   安装环境:Ubuntu16.04   前提条件: ubuntu系统下安装好jdk 1.8以上版本,正确配置环境变量 ubuntu系统下安 ...

  3. SignalR 简单示例

    一.什么是 SignalR ASP.NET SignalR is a library for ASP.NET developers that simplifies the process of add ...

  4. Web API 简单示例

    一.RESTful和Web API Representational State Transfer (REST) is a software architecture style consisting ...

  5. JAVA使用jdbc连接MYSQL简单示例

    以下展示的为JAVA使用jdbc连接MYSQL简单示例: import java.sql.DriverManager; import java.sql.ResultSet; import java.s ...

  6. Mybatis的简单示例

    首先新建一个JavaWeb项目并导入mybatis依赖的jar包,同时Mybatis是对数据库的操作所以我们需要在数据库中新建一个表user用来演示. 新建完表之后我们还需要建立相对应的实体类User ...

  7. [xfire]使用xfire开发webservice的简单示例

    目前项目上有用到xfire,所以临时看了些xfire的资料和示例,自己照着写了一个简单示例. xfire在2007年后已经停止更新,正式更名为apache cxf,也可以说是xfire2.0. xfi ...

  8. Redis 安装与简单示例

    Redis 安装与简单示例 一.Redis的安装 Redis下载地址如下:https://github.com/dmajkic/redis/downloads 解压后根据自己机器的实际情况选择32位或 ...

  9. Java调度框架Quartz简单示例

    Quartz的大名如雷贯耳,这里就不赘述,而且本文也不作为深入探讨,只是看完Quartz的官方文档后,下个简单示例,至少证明曾经花了点时间学习过,以备不时之需. Quartz使用了SLF4J,所以至少 ...

随机推荐

  1. 【python】如何安装requests

    在cmd窗口输入pip install requests 即可,如下 C:\Users\horn1\Desktop\python\4>pip install requestsCollecting ...

  2. (剑指Offer)面试题52:构建乘积数组

    题目: 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1].不能 ...

  3. 修复错误配置/etc/fstab文件导致系统无法正常启动

      1.文件介绍 /etc/fstab这个文件描述系统中各种文件系统的信息,应用程序读取这个文件,然后根据其内容进行自动挂载的工作.作为系统配置文件,fstab通常都位于/etc目录下,它包括了所有分 ...

  4. 算法笔记_026:折半查找(Java)

    目录 1 问题描述 2 解决方案 2.1 递归法 2.2 迭代法 1 问题描述 首先,了解一下何为折半查找?此处,借用<算法设计与分析基础>第三版上一段文字介绍: 2 解决方案 2.1 递 ...

  5. 阿里云服务器 centos7 ftp安装

    昨天租了阿里云服务器一个月,想玩一下linux系统,结果想用ftp上传本地文件的时候,发现用不了,结果在安装配置的时候折腾了几个小时,在网上查了无数的资料,有的说要改配置文件,有的说要关防火墙,说啥的 ...

  6. TP模板中如何使用函数

    TP模板中如何使用函数 TP中如何将时间戳转换为时间显示 我们往往需要对模板输出变量使用函数,可以使用: {$data.name|md5} 编译后的结果是: <?php echo (md5($d ...

  7. libsvm处理多分类的问题

    SVM是一个二分类器,当遇到多类别的时候,一般采取如下两种策略. a.一对多法(one-versus-rest,简称1-v-r SVMs).训练时依次把某个类别的样本归为一类,其他剩余的样本归为另一类 ...

  8. 问题解决——MFC SDI程序 CFormView中控件随窗体缩放

    从来都是做对话框程序,这次想做个SDI的程序,想着用一下带Robbin界面的office2007风格.就不用使用那些花钱的商业控件/UI库了. 假设你不想看我打的文字.能够直接拷走代码,自己声明上定义 ...

  9. 编译VLC for IOS

    之前接触VLC是因为Winrt的项目,后来似乎ARM版本的始终搞不定(没有针对于ARM-COFF的GCC编译器),vlc for winrt的项目好久没有更新了,自己也没有深入研究.有一天跟同事聊,他 ...

  10. Mybatis3.x与Spring4.x整合

    一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: mvn archetype:create -DgroupId=me.gacl -DartifactId=spring4-myba ...