gpt4 book ai didi

c - 路径变量和环境变量

转载 作者:行者123 更新时间:2023-11-30 15:45:29 24 4
gpt4 key购买 nike

我试图通过父进程获取命令并在不同的进程(子进程)中执行它。

#include<stdio.h>
#include<sys/types.h>
#include<fcntl.h>
#include<unistd.h>
#include<stdlib.h>
#include<malloc.h>

int main(){
pid_t pid = -1;
int status = -1;
char* ip = malloc(20);
char* a[20];
int pd[2];
char* path = NULL;

path = getenv("PATH");
printf("\n path : %s \n",path);

a[0] = malloc(10);

while(1){
pipe(pd);
pid = fork();
if(pid == 0){
//printf("\n Child! - pid : %d \n",getpid());
sleep(1);
close(pd[1]);
read(pd[0],ip,20);
a[0] = ip;
//execl(ip,ip,NULL);
execv(path,a);
exit(0);
}
else{
//printf("\n Parent! - pid : %d \n",getpid());
printf("(Enter a executable)$ ");
scanf("%s",ip);
//printf("\n %s \n",ip);
close(pd[0]);
write(pd[1],ip,20);
waitpid(pid,&status,0);
//printf("\n The child %d exited with status : %d \n",pid,status);
}
}
free(ip);
return 0;
}

路径和环境有什么区别。 getenv 函数为我提供了可执行文件的完整路径。上面的程序没有执行命令ls -l。

我想执行命令 ls -l ,输出应该显示在屏幕上,并且应该存储在文件中。我尝试执行命令 ls -l。但它没有执行。有没有办法在屏幕上输出时将 ls -l 输出到文件?

最佳答案

是的,有一种方法可以同时输出到屏幕和文件,它叫做tee

    ls -l | tee your_output_file

关于c - 路径变量和环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19018484/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com