linux / execl

本文详细介绍了Linux中的execl函数用法,包括参数列表、返回值、示例及其实现原理。重点讲解了函数如何替换进程并停止原有代码执行。

一、使用说明 

#include <unistd.h>
int execl(const char *path, const char *arg, ...);

函数说明

execl() 其中后缀"l"代表 list 也就是参数列表的意思。

第一参数 path 字符指针所指向要执行的文件路径, 接下来的参数代表执行该文件时传递的参数列表:argv[0],argv[1]... 最后一个参数须用空指针 NULL 作结束。

函数返回值

成功则不返回值, 失败返回 -1, 失败原因存于 errno 中,可通过 perror() 打印

二、栗子 

#include <stdio.h>
#include <unistd.h>

int main()
{
    if (execl("/bin/ls", "ls", "-ahl", "/etc/passwd", NULL) < 0) {
        perror("execl error");
    } else {
        printf("execl success\n");
    }
    return 0;
}

结果

-rw-r--r-- 1 root root 2.6K 5月  16 07:03 /etc/passwd 

大家可以清楚的看到, 执行 /bin 目录下的 ls,第一参数为程序名 ls,第二个参数为"-al",第三个参数为"/etc/passwd",但是没有输出 success!!

这是为什么呢?

execl函数特点:

当进程调用一种 exec 函数时,该进程完全由新程序代换,而新程序则从其 main 函数开始执行。因为调用 exec 并不创建新进程,所以前后的进程 ID 并未改变。exec 只是用另一个新程序替换了当前进程的正文、数据、堆和栈段。

当前进程的正文都被替换了,那么 execl 后的语句,即便 execl 退出了,都不会被执行。

转载:linux execl函数讲解,Linux下execl函数学习_刘轩鸿的博客-优快云博客

(SAW:Game Over!)

 

### Linux 下打开 Word、Excel 和 PDF 文件的命令 在 Linux 系统中,可以使用多种工具和命令来打开 Word、Excel 和 PDF 文件。以下是一些常用的命令及其功能说明。 #### 打开 Word 文件 在 Linux 中,可以通过安装 LibreOffice 或 OpenOffice 来处理 Word 文件(如 `.doc` 和 `.odt` 格式)。以下是具体命令: ```bash soffice --writer 文件名.doc & ``` 或者使用以下命令: ```bash libreoffice --writer 文件名.doc & ``` 上述命令中的 `&` 符号表示将程序放入后台运行[^1]。 #### 打开 Excel 文件 对于 Excel 文件(如 `.xls` 和 `.xlsx` 格式),可以使用以下命令: ```bash soffice --calc 文件名.xlsx & ``` 或者: ```bash libreoffice --calc 文件名.xlsx & ``` 这些命令同样支持后台运行,确保终端不会被阻塞[^1]。 #### 打开 PDF 文件 Linux 系统中常用的 PDF 查看器是 Evince 或 Okular。以下是打开 PDF 文件的命令: ```bash evince 文件名.pdf & ``` 或者使用 Okular: ```bash okular 文件名.pdf & ``` 上述命令同样支持后台运行,避免终端被占用[^1]。 --- ### 注意事项 - 如果系统未安装 LibreOffice 或 OpenOffice,请先通过包管理器进行安装。例如,在基于 Debian 的系统中,可以运行以下命令: ```bash sudo apt update && sudo apt install libreoffice ``` - 对于 PDF 查看器,如果未安装 Evince 或 Okular,可以通过以下命令安装: ```bash sudo apt install evince ``` 或者: ```bash sudo apt install okular ``` --- ### 示例代码 以下是一个完整的示例,展示如何在脚本中调用这些命令: ```bash #!/bin/bash # 打开 Word 文件 soffice --writer example.doc & # 打开 Excel 文件 soffice --calc example.xlsx & # 打开 PDF 文件 evince example.pdf & ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值