简单比较C语言中的execl()函数与execlp()函数
C语言execl()函数:执行文件函数
头文件:
#include <unistd.h>
定义函数:
int execl(const char * path, const char * arg, ...);
函数说明:execl()用来执行参数path 字符串所代表的文件路径, 接下来的参数代表执行该文件时传递过去的argv(0), argv[1], ..., 最后一个参数必须用空指针(NULL)作结束.
返回值:如果执行成功则函数不会返回, 执行失败则直接返回-1, 失败原因存于errno 中.
范例
#include <unistd.h> main() { execl("/bin/ls", "ls", "-al", "/etc/passwd", (char *)0); }
执行:
/*执行/bin/ls -al /etc/passwd */ -rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd
C语言execlp()函数:从PATH 环境变量中查找文件并执行
头文件:
#include <unistd.h>
定义函数:
int execlp(const char * file, const char * arg, ...);
函数说明:execlp()会从PATH 环境变量所指的目录中查找符合参数file 的文件名, 找到后便执行该文件, 然后将第二个以后的参数当做该文件的argv[0], argv[1], ..., 最后一个参数必须用空指针(NULL)作结束.
返回值:如果执行成功则函数不会返回, 执行失败则直接返回-1, 失败原因存于errno 中.
错误代码:参考 execve().
范例
/* 执行ls -al /etc/passwd execlp()会依PATH 变量中的/bin 找到/bin/ls */ #include <unistd.h> main() { execlp("ls", "ls", "-al", "/etc/passwd", (char *)0); }
执行:
-rw-r--r-- 1 root root 705 Sep 3 13 :52 /etc/passwd
相关推荐
-
简单对比C语言中的fputs()函数和fputc()函数
C语言fputc()函数:写文件函数(将一指定字符写入文件流中) 头文件: #include <stdio.h> 定义函数: int fputc(int c, FILE * stream); 函数说明:fputc 会将参数c 转为unsigned char 后写入参数stream 指定的文件中. 返回值:fputc()会返回写入成功的字符, 即参数c. 若返回EOF 则代表写入失败. 范例 #include <stdio.h> main() { FILE * fp; char a[
-
详解C语言中freopen()函数和fclose()函数的用法
C语言freopen()函数:打开文件函数,并获得文件句柄 头文件: #include <stdio.h> 定义函数: FILE * freopen(const char * path, const char * mode, FILE * stream); 函数说明: 参数 path 字符串包含欲打开的文件路径及文件名. 参数mode 请参考fopen()说明.. 参数stream 为已打开的文件指针. Freopen()会将原stream 所打开的文件流关闭, 然后打开参数path 的文件.
-
简要对比C语言中的dup()函数和dup2()函数
C语言dup()函数:复制文件描述词 头文件: #include <unistd.h> 定义函数: int dup (int oldfd); 函数说明:dup()用来复制参数oldfd 所指的文件描述词, 并将它返回. 此新的文件描述词和参数oldfd 指的是同一个文件, 共享所有的锁定.读写位置和各项权限或旗标. 例如, 当利用lseek()对某个文件描述词作用时, 另一个文件描述词的读写位置也会随着改变. 不过, 文件描述词之间并不共享close-on-exec 旗标. 返回值:当复制成功
-
简单比较C语言中的execl()函数与execlp()函数
C语言execl()函数:执行文件函数 头文件: #include <unistd.h> 定义函数: int execl(const char * path, const char * arg, ...); 函数说明:execl()用来执行参数path 字符串所代表的文件路径, 接下来的参数代表执行该文件时传递过去的argv(0), argv[1], ..., 最后一个参数必须用空指针(NULL)作结束. 返回值:如果执行成功则函数不会返回, 执行失败则直接返回-1, 失败原因存于errno
-
C语言中“不受限制”的字符串函数总结
"不受限制的"字符串函数 按<C和指针>中所说,那些常用的字符串函数都是"不是限制的",就是说它们只能通过寻找字符串末尾的NULL来判断字符串的长度. strlen strlen函数用于求解字符串长度,其返回类型为unsigned int(即size_t).strlen函数从起点开始,往后计数,遇到'\0'停止. 值得注意的是:strlen函数的返回类型.看如下代码: #include<string.h> #include<iostre
-
R语言中cbind、rbind和merge函数的使用与区别
cbind: 根据列进行合并,即叠加所有列,m列的矩阵与n列的矩阵cbind()最后变成m+n列,合并前提:cbind(a, c)中矩阵a.c的行数必需相符 rbind: 根据行进行合并,就是行的叠加,m行的矩阵与n行的矩阵rbind()最后变成m+n行,合并前提:rbind(a, c)中矩阵a.c的列数必需相符 > a <- matrix(1:12, 3, 4) > print(a) [,1] [,2] [,3] [,4] [1,] 1 4 7 10 [2,] 2 5 8 11 [3,
-
python语言中pandas字符串分割str.split()函数
目录 前言 1.常规赛数据格式 2.计算詹姆斯常规赛命中率 总结 前言 为了介绍python语言中pandas库在数据分析中的重要作用,本人打算以NBA球星勒布朗詹姆斯在2020-2021赛季常规赛个人数据为例对pandas相关函数进行详细说明.利用爬虫技术,在知名篮球网站虎扑爬取了勒布朗詹姆斯的数据,稍后会将数据上传至csdn,以供大家下载. 这篇文章,详细介绍了pandas字符串分割函数---str.split()的用法. DataFrame.str.split(pa,n,expand)pa
-
简单介绍C语言中的umask()函数和truncate()函数
C语言umask()函数:设置建立新文件时的权限遮罩 头文件: #include <sys/types.h> #include <sys/stat.h> 定义函数: mode_t umask(mode_t mask); 函数说明:umask()会将系统umask值设成参数mask&0777后的值, 然后将先前的umask值返回.在使用open()建立新文件时, 该参数mode 并非真正建立文件的权限, 而是(mode&~umask)的权限值. 例如: 在建立文件时指
-
R语言中if(){}else{}语句和ifelse()函数的区别详解
首先看看定义: # if statement if(cond) expr if(cond) cons.expr else alt.expr # ifelse function ifelse(test, yes, no) 这两个函数(R语言中都是函数)相同的地方都是根据条件返回对应的值. 区别在于: if语句的条件是个TRUE/FALSE值,如果是个长度>1的逻辑向量,只判断第一个TRUE/FALSE值:而ifelse是长度任意的逻辑向量,返回根据逻辑向量对应对的yes/no值组合的新向量 ife
-
简单了解Swift语言中的break和continue语句的用法
break语句 在 C 编程语言中的 break 语句有以下两种用法: 当在循环中遇到 break 语句, 循环立即终止,程序控制继续循环语句的后面(退出循环). 它可用于终止在switch语句(在下一章节)的情况(case). 如果使用嵌套循环(即,一个循环在另一个循环), break语句将停止最内层循环的执行,并开始执行下一行代码块之后的代码块. 语法 在Swift 编程中的 break语句的语法如下: 复制代码 代码如下: break 流程图 实例 复制代码 代码如下: import Co
-
C语言中getch()函数详解及简单实例
C语言中getch()函数详解及简单实例 前言: 这个函数是一个不回显函数,当用户按下某个字符时,函数自动读取,无需按回车,有的C语言命令行程序会用到此函数做游戏,但是这个函数并非标准函数,要注意移植性! 所以有这样的一个接口,那就很牛逼了,至少可以做个游戏来玩下,结合ASCII码,很容易写个方向键控制的2048或者贪吃蛇等等有趣的游戏出来. 以下是以一个简单的例子: 你会发现当你按下对应的按键的时候就会打印相应的语句. #include <stdio.h> #include <fcnt
-
Go语言中append函数用法分析
本文实例分析了Go语言中append函数用法.分享给大家供大家参考.具体如下: Go语言中append的功能十分强大,使用它可以使很多功能的实现变得更加简洁.以下为简单对比: .将一个slice插入到另一个slice的指定位置: 不使用append: 复制代码 代码如下: func insertSliceAtIndex(slice_origin []int, slice_to_insert []int, insertIndex int) (result []int, err error
随机推荐
- cmd 命令行下复制、粘贴的快捷键
- VBS脚本加密/解密VBS脚本(简易免杀版1.1)
- Java实现配置加载机制
- js写的方法实现上传图片之后查看大图
- 详解ASP.NET MVC 利用Razor引擎生成静态页
- PHP 面向对象详解
- javascript实现可拖动变色并关闭层窗口实例
- c++实现十进制转换成16进制示例
- redhat下apache+php+mysql+imap+ldap+jdk+tomcat的安装
- Python 迭代器工具包【推荐】
- 使用Jquery实现每日签到功能
- GreyBox技术总结(转)
- jQuery插件zTree实现单独选中根节点中第一个节点示例
- js密码强度检验
- 教你如何使用platform密钥对apk进行签名
- java Iterator接口和LIstIterator接口分析
- c#实现sunday算法实例
- Webpack4 使用Babel处理ES6语法的方法示例
- JavaScript类数组对象转换为数组对象的方法实例分析
- mysql 8.0.11 macos10.13安装配置方法图文教程