linux C语言 exec函数的相关问题
大家好,我想问一个问题,execl("/home/xxx/Elevator/floor_three","floor_three",NULL)==-1)能不能用一个宏定义#...
大家好,我想问一个问题,
execl("/home/xxx/Elevator/floor_three","floor_three",NULL)==-1)
能不能用一个宏定义
#define FILEPATH $(HOME)/Elevator/floor_three
进行替换,我知道在引号中是不能进行宏替换的,有没有其它办法呢?
或者不用宏替换,仅仅把/home/xxx/替换成$(HOME)也行,即实现可移植性 展开
execl("/home/xxx/Elevator/floor_three","floor_three",NULL)==-1)
能不能用一个宏定义
#define FILEPATH $(HOME)/Elevator/floor_three
进行替换,我知道在引号中是不能进行宏替换的,有没有其它办法呢?
或者不用宏替换,仅仅把/home/xxx/替换成$(HOME)也行,即实现可移植性 展开
3个回答
展开全部
直接把宏定义成字符串啊,就可以了
#define FILEPATHA $(HOME)/
#define FILEPATHB “Elevator/floor_three”
char* FILEPATH=NULL;
FILEPATH=(char*)malloc(30);
memcpy(FILEPATH,A,strlen(A));//拼接字符串
strcat(FILEPATH,B);
#define FILEPATHA $(HOME)/
#define FILEPATHB “Elevator/floor_three”
char* FILEPATH=NULL;
FILEPATH=(char*)malloc(30);
memcpy(FILEPATH,A,strlen(A));//拼接字符串
strcat(FILEPATH,B);
追问
您好,首先谢谢您的关注,你提供了一个很好的思路,但我感觉还有点问题,希望您能再解释下如何在exec函数族中如何使用……
追答
FILEPATH这个字符串拼接好了,你直接用就是了
execl(FILEPATH,"floor_three",NULL)==-1)//第一个参数是一个字符串地址参变量,写个地址就OK了
如果要在别处使用更改了路径,只要更改FILEPATHA就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
能不能把命令写成 ~/Elevator/floor_three
~ 代表登录用户的HOME
~ 代表登录用户的HOME
追问
您好,首先谢谢您的关注,但是当我替换成~时会提示目录错误,估计也是引号的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你在宏定义时加“”不符合要求吗
#define FILEPATH "$(HOME)/Elevator/floor_three"
#define FILEPATH "$(HOME)/Elevator/floor_three"
更多追问追答
追问
您好,首先谢谢您的关注,我是想这样的,但因为在引号中,这个宏定义不起作用……
追答
你说的在引号中不起作用,是宏定义报错,还是你使用出错?
类似以下这样,不会出错的吧,本身就是个替换而已
#define FILEPATH "/home/xxx/Elevator/floor_three"
execl(FILEPATH,"floor_three",NULL)==-1)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询