首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linuxexec函数族详解

对于exec函数族来说,它的作用通俗来说就是使另一个可执行程序替换当前的进程,当我们在执行一个进程的过程中,通过exec函数使得另一个可执行程序A的数据段、代码段和堆栈段取代当前进程B的数据段...如果当一个进程想执行另一个可执行程序时,可以使用fork函数先创建一个子进程,然后通过子进程来调用exec函数从而实             现可执行程序的功能。...通过man命令来看一exec函数族:        首先exec并不是一个函数名,之所以叫函数族就说明它有很多个不同的函数,但是这些函数的功能是一样的,只不过参数不同使用的方式也略不相同。...那么在man命令看到的exec函数原型是这样的: #include extern char **environ; int execl...其中execvpe和execle一般不常用,下面就以例子来看看具体的用法以及所展示出来的效果是怎么样的,便于更好的理解exec函数的作用,先来看一下面的这个代码: #include

8.5K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    WindowsThinkPHP与Linux互通之exec或shell_exec问题

    最近在做一个项目需要用到PHP调用Linux命令行脚本,在服务器执行命令是可以的,但是当放在项目代码中,在web中执行命令就不行了,调试了一天,终于可以了!...可以通过在命令行执行:ps -ef | grep php来看。或者在php中执行 echo exec('whoami') 来查看。centos默认会是nobody。nobody默认没有任何权限。...环境运行 七.首页创建一个test.php ?...八.最后总结 这两个函数都是执行Linux命令函数,不同的是获取返回结果不一样,exec只能获取最后一行数据,shell_execu则可以获取全部数据。...使用exec函数的朋友注意了,如果你需要获取全部返回信息,就应该使用shell_exec函数, 如果命令执行结果只有一行返回信息,那哪个都行

    1.9K10

    linux find exec

    阅读目录(Content) 一. exec参数说明: 二. 使用示例 1. 查找当前目录下的文件,并对查找结果执行ls -l 命令 2....查找当前目录下的以.log结尾的文件或目录,并移动到test目录下 find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了...使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的。在有些操作系统中只允许-exec选项执行诸如l s或ls -l这样的命令。...建议在真正执行rm命令删除文件之前,最好先用ls命令看一,确认它们是所要删除的文件。 exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个,最后是一个分号。...为了使用exec选项,必须要同时使用print选项。如果验证一find命令,会发现该命令只输出从当前路径起的相对路径及文件名。 二. 使用示例 1.

    4.4K20

    Linux之find exec

    使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的。在有些操作系统中只允许-exec选项执行诸如ls或ls -l这样的命令。...建议在真正执行rm命令删除文件之前,最好先用ls命令看一,确认它们是所要删除的文件。 exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个\,最后是一个分号。...为了使用exec选项,必须要同时使用print选项。如果验证一find命令,会发现该命令只输出从当前路径起的相对路径及文件名。...find命令首先匹配所有文件名为passwd*的文件,然后执行grep命令看看在这些文件中是否存在一个root用户 查找当前目录下所有的.log文件并移动到指定目录 > find ..../rumenz \; 原文链接:https://rumenz.com/rumenbiji/linux-find-exec.html 微信公众号:入门小站

    3.9K00

    Linux之find exec

    使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的。在有些操作系统中只允许-exec选项执行诸如ls或ls -l这样的命令。...建议在真正执行rm命令删除文件之前,最好先用ls命令看一,确认它们是所要删除的文件。 exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个\,最后是一个分号。...为了使用exec选项,必须要同时使用print选项。如果验证一find命令,会发现该命令只输出从当前路径起的相对路径及文件名。...-exec使用grep > find / -name "passwd*" -exec grep "root" {} \; 任何形式的命令都可以在-exec选项中使用。...find命令首先匹配所有文件名为passwd*的文件,然后执行grep命令看看在这些文件中是否存在一个root用户 查找当前目录下所有的.log文件并移动到指定目录 > find .

    4K20

    Linux使用exec族函数进行进程替换

    版权声明:本文为博主原创文章,转载请注明博客地址: https://blog.csdn.net/zy010101/article/details/83692324 在Linux...使用fork或者vfork函数创建的子进程是完全复制父进程的代码来执行的。...当一个程序中使用exec函数来调用了另外的可执行文件后,那么该进程中所有的资源完全由新进程替换。...所以使用的时候应当注意,如果还想回到原来的进程继续执行,那么需要先使用fork函数来创建一个进程,在这个进程中使用exec函数来完成进程替换。这样才能保证原进程能在exec调用后不被破坏。...但是使用fork的的缺点是必须无法确定执行顺序,在这里我让父进程挂起2秒,从而使得子进程先于父进程执行。另外使用exec函数也可以完成shell命令。例如下面的代码。

    1.3K20

    Linux之find exec

    使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的。在有些操作系统中只允许-exec选项执行诸如ls或ls -l这样的命令。...建议在真正执行rm命令删除文件之前,最好先用ls命令看一,确认它们是所要删除的文件。exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个\,最后是一个分号。...为了使用exec选项,必须要同时使用print选项。如果验证一find命令,会发现该命令只输出从当前路径起的相对路径及文件名。...find命令首先匹配所有文件名为passwd*的文件,然后执行grep命令看看在这些文件中是否存在一个root用户 查找当前目录下所有的.log文件并移动到指定目录 > find ....-name "*.log" -exec mv {} ../rumenz \; 原文链接:https://rumenz.com/rumenbiji/linux-find-exec.html

    3.6K20

    Linux之find exec

    使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的。在有些操作系统中只允许-exec选项执行诸如ls或ls -l这样的命令。...建议在真正执行rm命令删除文件之前,最好先用ls命令看一,确认它们是所要删除的文件。 exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个\,最后是一个分号。...为了使用exec选项,必须要同时使用print选项。如果验证一find命令,会发现该命令只输出从当前路径起的相对路径及文件名。...find命令首先匹配所有文件名为passwd*的文件,然后执行grep命令看看在这些文件中是否存在一个root用户 查找当前目录下所有的.log文件并移动到指定目录 > find ....-name "*.log" -exec mv {} ../rumenz \; 原文链接:https://rumenz.com/rumenbiji/linux-find-exec.html

    3.9K30

    Linux系统进程编程之exec族函数解析(四)

    譬如说我们希望子进程来执行ls -la 命令就不行了(没有源代码,只有编译好的可执行程序);为了解决这种不灵活性,所以在Linux系统中引入了exec族函数。...另外,这里的可执行文件既可以是二进制文件,也可以是Linux下任何可执行脚本文件。...2、在Linux中使用exec函数族主要有以下两种情况: a、当进程认为自己不能再为系统和用户做出任何贡献时,就可以调用任何exec 函数族让自己重生。...当一个执行执行时,Shell进程会fork子进程然后调用exec函数去执行执行码。...系统环境变量: 如果用户在执行这个程序时没有传递第三个参数,则程序会自动从父进程继承一份环境变量(默认的,最早来源于OS中的环境变量);如果我们exec的时候使用execle或者execvpe

    1.3K30

    PHP执行系统外部命令函数:exec()、passthru()、system()、shell_exec()

    php提供4种方法执行系统外部命令:exec()、passthru()、system()、 shell_exec()。 在开始介绍前,先检查php配置文件php.ini中是有禁止这是个函数。...> 执行结果: test.php Array( [0] => index.php [1] => test.php) 知识点: exec 执行系统外部命令时不会输出结果,而是返回结果的最后一行,如果你想得到结果你可以使用第二个参数...第三个参数用来取得命令执行的状态码,通常执行成功都是返回0。...和exec的区别在于system在执行系统外部命令时,直接将结果输出到浏览器,不需要使用 echo 或 return 来查看结果,如果执行命令成功则返回true,否则返回false。...第二个参数与exec第三个参数含义一样。 方法四:反撇号`和shell_exec() shell_exec() 函数实际上仅是反撇号 (`) 操作符的变体 代码: 1 2 3 <?

    1.1K20

    Linuxshell不能正常执行

    标签 Linux、Shell 操作 Linux编写deploy.sh文件,内容是用docker部署微服务 执行脚本:出错,错误信息如下 错误信息 [root@coder-oldgeek]# sh deploy.sh...containers, networks, images, and volumes events Receive real time events from containers exec...:默认换行符是,称为CR与LF两个符号(\r\n); 【注意点】在windows编辑的shell脚本只看文件内容是没问题,但一旦到linux可能就运行挂了 解决问题 查找换行符号:find命令 find...-name '*.sh' | xargs -I {} perl -pi -e 's/\r//g' {} 查看有问题文件是否去掉DOS格式换行符号 [root@coder-oldgeek]# file...deploy.sh: Bourne-Again shell script, ASCII text executable 发现:with CRLF line terminators已经消失了 继续执行脚本

    4.3K10

    Linux程序是怎样执行

    image.png 如何启动程序 双击(windows系统),或者在shell终端上执行....在主函数执行之前,主要做了以下准备工作: 检查并尝试打开/dev/tty 检查shell是否在调试模式运行 分析命令行参数 读取shell环境 加载.bashrc、.profile和其他配置文件等。...接下来,我们可以在此之后看到对sched_exec的调用。 sched_exec函数用于确定可以执行新程序的最小负载处理器,并将当前进程迁移到该处理器。...= bprm-> p; 堆栈的顶部将包含程序文件名,我们将该文件名存储到linux_bprm结构的exec字段中。...elf_phdata) goto out; 程序解释器指定在可执行文件的.interp部分(在大多数情况,对于x86_64,链接器为– /lib64/ld-linux-x86-64.so.2)

    5K50
    领券