C++之execlp函数用法_execlp函数c++-程序员宅基地

技术标签: C++  

一 点睛

execlp函数会从PATH环境变量所指得目录中查找符合参数file的文件名,找到后便执行该文件,然后将第二个以后的参数当作该文件的argv[0]、argv[1]......,最后一个参数必须用空指针(NULL)结束。

execlp函数声明如下:

int execlp(const char *filename, const char *arg, ...)

如果执行成功,则函数不会返回,执行失败则直接返回-1,失败原因存于errno中。

二 使用execlp执行不带选项的命令程序pwd

1 代码

#include <unistd.h>  

int main(int argc, char* argv[])
{
    execlp("pwd", "",  NULL);
    return 0;
}

2 编译并运行

[root@localhost test]# g++ test.cpp -o test
[root@localhost test]# ./test
/root/C++/ch05/5.8/test

3 说明

execlp的第一个函数直接用pwd这个命令程序即可,而不需要写出其全路径,因为环境变量PATH中已经包含路径/usr/bin了。

对应第二个参数为什么是空字符串,这个其实不重要,传任意字符串都可以,但必须要有,不能为NULL,否则运行会报错。这只是针对创建系统命令程序的情况,我们自己的程序无须这样。

三 使用execlp执行我们自己编写的程序

1 编写我们自己写的程序

#include <string.h>
using namespace std;
#include <iostream>
int main(int argc, char* argv[])
{
    int i;
    cout <<"argc=" << argc << endl; //打印下传进来的参数个数
    
    for(i=0;i<argc;i++)   //打印各个参数
        cout<<argv[i]<<endl;
}

2 编译并运行

[root@localhost test]# g++ mytest.cpp -o mytest
[root@localhost test]# ./mytest hello world
argc=3
./mytest
hello
world

3 execlp调用我们编写的程序

#include <unistd.h>  
using namespace std;
#include <iostream>

int main(int argc, char* argv[])
{
    execl("mytest","hello","boys", NULL); //传入两个参数
    cout << "------------------\n";//如果execl执行成功,这一句不会执行到的。
    
    return 0;
}

4 运行结果

[root@localhost test]# g++ test.cpp -o test
[root@localhost test]# ./test
argc=2
hello
boys

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/chengqiuming/article/details/88926460

智能推荐

Window Operations(窗口函数的使用)_前端中windowoperate-程序员宅基地

文章浏览阅读8.8k次。定时的进行一个时间段内的数据处理Spark Streaming also provides windowed computations, which allow you to apply transformations over a sliding window of data. The following figure illustrates this sliding window.As shown in the figure, every time the window slides over a_前端中windowoperate

react之redux的学习_react-redux中什么是容器组件,什么是ui组件-程序员宅基地

文章浏览阅读170次。为什么需要redux管理的状态越来越多,越来越复杂。状态包括服务器返回、缓存的数据、用户操作产生的数据、UI的展示状态等。管理不断变化的state是非常困难的。一个状态的变化引起另一个状态的变化,UI也会引起状态的变化。react帮助我们管理视图,state需要我们自己管理。帮助我们管理state的容器。核心理念storeactionreducer三大原则单一数据源整个项目的state存在一个object tree中,并且这个object tree之存储在store中_react-redux中什么是容器组件,什么是ui组件

ajax请求中url写法的问题(相对路径和绝对路径)_ajax的url路径怎么写-程序员宅基地

文章浏览阅读8.1k次,点赞10次,收藏17次。一.开发中遇到的问题在一个jsp页面中,一个jsp页面中ajax请求中url是这样写的很明显我是想要向controller中发送请求,我的controller中的RequestMapping是这写的我之前发送ajax请求中的url都是写成/system/login这样,但是这里我不太清楚为什么直接写成login可以访问,但是写成/system/login却不能访问二.问题分析在查看浏览器检查中,发现没有改动url即写成’login’时,是可以正确访问的到的。当我改为/system/logi_ajax的url路径怎么写

WIN7/win10电脑清理文件、拷贝文件很慢的处理方法_电脑文档整理慢-程序员宅基地

文章浏览阅读1.5k次。我们在使用WIN7/win10电脑清理文件、拷贝文件的时候,有些时候莫名其妙变慢了,按照以下方法处理即可。_电脑文档整理慢

基于k8s安装 kubeshpere3.0_kubeshpre3.0官网-程序员宅基地

文章浏览阅读762次。基于k8s安装 kubeshpere3.0前提,确保正确的安装了k8s,包括 nfs、calico、sc、metrics-server 等可以查看我的另一篇先安装k8skubeshpere3.0 的安装也可参考官网指南下载安装kubeshpere文件wget https://github.com/kubesphere/ks-installer/releases/download/v3.0.0/kubesphere-installer.yamlwget https://github.com/kub_kubeshpre3.0官网

linux(nat)网络不通解决办法_linuxnat没网-程序员宅基地

文章浏览阅读1.3k次。解决办法查看是否有虚拟网卡查看是否有IP地址dhcp获取地址设置固定IP地址查看是否有虚拟网卡如果有vmnet8查看是否有IP地址1.命令ip a(自带)其中ens160 ens224是网卡名字2.ifconfig 最小化安装没有(需要安装)yum install -y net-tools.x86_64dhcp获取地址这是随机的,可能地址会变化[root@localhost ~]# dhclient设置固定IP地址[root@localhost ~]# nmcli c_linuxnat没网

随便推点

Mysql锁-程序员宅基地

文章浏览阅读85次。一:Mysql支持的锁类型和特点?1:表级锁:开销小,粒度大,加锁快,并发度低,发生锁冲突的概率最高2:行级锁:开销大,粒度小,加锁慢,并发度大,发生锁冲突的概率最低3:页面锁,开销和加锁时间介于表级锁和行级锁之间,会出现死锁。二:不同存储引擎锁支持的锁类型。主要分析inndb和myisam存储引擎。myisam使用的是表级锁,inndb支持的是行级锁好表级锁。2.1:myisam表锁:myisam也有两种锁模式:表共享读锁和表独占写锁。表共享读锁:不会阻塞其他用户对同一张表的读请求。表

系统安装部署-低配版_系统安装与部署-程序员宅基地

文章浏览阅读115次。系统安装部署环境需求服务器 linux(centos、redhat等)运行环境 jdk.18数据库 mysql 5.6访问代理 nginx文件目录说明zy_mysql.sql 创建数据库和数据表zy_auxiliary_service.jar 服务端程序html 前端页面zy_auxiliary.service linux 服务启动脚本部署流程数据库脚本​ 登录数据库,直接运行zy_mysql.sql文件即可linux脚本创建本地文件夹mkdir -p /home_系统安装与部署

dhu复试基础——51 开关灯_51dhuk-程序员宅基地

文章浏览阅读2.1k次。(函数的简单应用)51 开关灯作者: 孙辞海 时间限制: 5S章节: 一维数组问题描述 :有N个灯放在一排,从1到N依次顺序编号。有N个人也从1到N依次顺序编号。1号将灯全部关闭,然后2将凡是2的倍数的灯打开;3号将凡是3的倍数的灯做相反处理(该灯如为打开的,则将它关闭;如关闭的,则将它打开)。以后的人都和3号一样,将凡是自己标号倍数的灯做相反处理。试计算第N个人操作后,哪些灯是点亮的。(..._51dhuk

爬取bili番剧相关内容_blbl 视频怎么爬取-程序员宅基地

文章浏览阅读348次。我知道有些二次元肥仔就是喜欢看这些二次元东西,反正我是没看过,不知道你们怎么样呢?今天就给大家分析一下他的视频列表页首先呢,打开网页,借用开发者工具,检查分析,看一下网页源代码中有没有你想要的信息,有的话直接解析,没有的话点开网络,查看请求,根据关键字搜索,看一下请求返回的数据是什么样的。如果是json的话,直接向这个请求的url发起请求。然后,将请求来的数据用json.loads()..._blbl 视频怎么爬取

一个自建的Java命令行解析参数类ArgumentsParser_java 解析main传递的参数的工具-程序员宅基地

文章浏览阅读649次。文章目录1 简介2 参数格式定义3 类功能介绍3.1 初始化3.2 主要函数4 源代码5 输出结果6 小结1 简介在前文中,介绍了一个Python中的 argparse.ArgumentParser 类,能够实现对命令行输入参数的控制。搜索了一下,发现在Java中并没有提供相应的类。因此,为了在Java实现类似的功能,本文编写了一种用于处理main函数中的输入参考 String[] args 的类 ArgumentsParser。2 参数格式定义首先,对参数进行定义。一般而言,命令行中的输入参数通用_java 解析main传递的参数的工具

flex布局下文字超出隐藏失效解决办法_flex溢出隐藏不生效-程序员宅基地

文章浏览阅读1.5k次。1、flex盒子设置min-width:0;2、文字内容外套一层容器;_flex溢出隐藏不生效

推荐文章

热门文章

相关标签