到目前为止,我唯一感到困惑的部分是如何使用第一个参数设置execv作为当前工作目录。我已经尝试了两个“。”和“〜”,既不向屏幕执行任何操作;同“/”。和“/〜”。我如何有execv运行这样的困惑:

$ ./prog LS -t -al

而且有它在当前目录下执行程序后,执行的命令(其存储到的argv) ,或同一目录中的文件是(这将基于谁在使用它而改变。)

我的代码:

使用execv(C语言)从linux命令提示符运行命令

#include

#include

#include

#include

void main(int argc, char *argv[])

{

int pid;

int count = 0;

char *argv2[argc+1];

for(count = 0; count < argc-1; count++){

argv2[count] = argv[count+1];

printf("Argv2: %s\n", argv2[count]); //just double checking

argv2[argc-1] = NULL;

}

pid = fork();

if(pid == 0){

printf("Child's PID is %d. Parent's PID is %d\n", (int)getpid, (int)getppid());

execv(".", argv2); //

}

else{

wait(pid);

exit(0);

}

}

一些样本输出:

$ ./prog LS -t -al

Argv2:LS

Argv2:-t

Argv2:-al

孩子的PID是19194.家长的PID为19193

2012-09-25

Baelix

+0

我会建议您提高设置为“编译器警告”。它应该告诉你从main返回int。在我的系统上,它也抱怨缺少#include 。并等待一个整数指针作为参数,而不是整数。 –

用c语言运行Linux命令,使用execv(C语言)从linux命令提示符运行命令相关推荐

  1. linux运行go程序命令行,宝塔面板Linux环境-安装Golang:Go语言环境安装以及程序如何运行...

    有的人可能对Go语言很感兴趣,这也是近几年很火的一门编程语言,我们可以在宝塔面板Linux环境下安装Go语言环境. 安装环境:CentOS Linux 7.6.宝塔面板6.9.3.golang:go1 ...

  2. linux下如何用c语言调用shell命令-转

    C程序调用shell脚本共有三种法子 :system().popen().exec系列函数 system()不用你自己去产生进程,它已经封装了,直接加入自己的命令exec 需要你自己 fork 进程, ...

  3. 语言环境设置命令locale 命令(linux,对应于window 7(win叫什么命令?)控制面板-区域和语言里的设置)

    Locale 目录 [隐藏] 1关于locale的设定,为什么要设定locale 1.1关于locale的设定 1.2一.为什么要设定locale 1.3二.到底什么是locale? 1.4三.什么是 ...

  4. go语言生成linux桌面快捷,使用Go语言在MacOS创建一个自定义的命令行工具

    使用 MacOS 做开发的朋友都知道,我们一般会使用 Homebrew 做软件包管理,经常会用到 brew install [soft] 来安装各种各样的命令行软件.今天通过一个百科查找的命令行工具( ...

  5. 在Linux环境下运行你的第一个C语言程序

    在Linux环境下运行你的第一个C语言程序 1.前言 2.环境配置 1.1 安装编辑器 1.2 安装gcc编译器 3.编写第一个C程序 3.1 新建文件夹 3.2 编辑该文件 3.3 编译mian.c ...

  6. sudo命令_用大写字母输入 Linux 命令,实现以 sudo 用户权限运行

    我们知道,一些 Linux 命令是要通过 sudo 权限才能运行的,这需要我们每次使用这些命令时在前面加一个 sudo ,十分繁琐.今天给大家介绍一个好用的工具 SUDO ,它只需要我们用大写字母键入 ...

  7. linux sudo漏洞 可导致用户以 root 权限运行命令

    Linux 用户要注意了!几乎所有基于 UNIX 和 Linux 的操作系统上安装的核心命令,也是最重要.最强大也最常用的工具 Sudo中被曝存在一个漏洞. Sudo 的全称是"superu ...

  8. ssh中exit命令退出远程服务器_解决Linux关闭终端(关闭SSH等)后运行的程序或者服务自动停止...

    问题描述:当SSH远程连接到服务器上,然后运行一个服务 ./catalina.sh start,然后把终端开闭(切断SSH连接)之后,发现该服务中断,导致网页无法访问. 解决方法:使用nohup命令让 ...

  9. linux限制ping的时间,如何限制Linux命令程序运行的时间

    Linux提供了大量的命令,每个命令都是唯一的,并且在特定的情 况下使用.Linux的目标是帮助您尽可能地高效工作.Linux命令的一个属性是时间限制.您可以为任何您想要的命令设置时间限制.如果时间过 ...

最新文章

  1. hashmap的五种便利方式
  2. 阿里巴巴P9大佬雷卷与中间件小哥重新定义:高段位程序员的学习之道
  3. mysql 魔乐_MLDN 李兴华 魔乐科技网上最全笔记
  4. VS2012生成事件
  5. java数据结构 - 单链表(腾讯面试题实现单链表反转)
  6. 根据自身工作经验总结的一个工作问题解决思路
  7. 《基于Nginx的中间件架构》学习笔记---3.nginx的目录分析
  8. Airflow 重跑dag中部分失败的任务
  9. iPhone路径大全
  10. echarts无数据时显示暂无数据或者用图片代替
  11. Spark综合学习笔记(五)SparkStreaming介绍
  12. TokenInsight 对话首席——2019年底层公链机会展望
  13. 微观经济学读书笔记(一)
  14. Docker Pull非常缓慢(使用阿里云镜像加速器)
  15. 华为Android 10手机微信小程序无法调起的问题解决办法
  16. 小白也能看懂的seaborn入门示例
  17. 如何提高本地文件上传至百度云的速度_上传1GB/s,下载1KB/s的原因终于找到了! | 细说网盘储存机制...
  18. 类似qq的图片查看器
  19. BERT-Whole Word Masked(WWM)
  20. RNA 12. SCI 文章中肿瘤免疫浸润计算方法之 CIBERSORT

热门文章

  1. 2019.7.23整理记录以及四道题
  2. ubuntu 18.04下 配置qt opencv的坑
  3. jvm 分代回收算法通俗理解
  4. Web自动化测试中的接口测试
  5. String str 与 String str=new String() 区别
  6. java struts2下载zip_Struts2多文件下载
  7. java 情况浏览器缓存_JavaWeb禁止浏览器缓存当前Web页面的方法
  8. mysql 当前时区_如何获取MySQL的当前时区?
  9. 对于局部变量_LabVIEW小白入门——局部变量
  10. python的django框架是干嘛的_Django框架在Python开发很重要为什么?