jjzjj

c - execvp 的阻塞版本 (windows)

这题与Non-blockingversionofsystem()正好相反我想用另一个进程替换当前进程(而不是创建另一个进程)。我想启动(例如)notepad,但是以阻塞方式(我不想在notepad关闭之前得到提示。在Windowsshell中我只是这样做cmd/cnotepad(notepad如果没有cmd/c前缀,则自动从提示中分离)在C中,使用system我只是这样做system("notepad");但这是在幕后fork。我想用记事本替换当前进程,并且我希望它是阻塞的。我试过:#include#includeintmain(intargc,char**argv){char*con

php - Python 的 os.execvp 等价于 PHP

我有一个正在运行的PHP命令行程序。我想直接从PHP连接到mysqlshell。我之前在Python中使用os.execvp完成过此操作,但我无法在PHP中使用同样的东西。我尝试了以下功能:系统直通执行shell_exec例子:system('mysql-uroot-pxxxxdb_name');但他们似乎都在等待mysql退出并返回一些东西。我真正想要的是让PHP启动mysqlshell然后自行退出。有什么想法吗? 最佳答案 如果你希望shell命令是交互式的,使用:system("mysql-uroot-pdb_name>`tt

C++ const char* 到 const char* const

我目前正在为我的类(class)写一个作业,它应该充当一个非常基本的外壳。我快完成了,但是我遇到了execvp和我的参数字符数组的问题。这是我的代码的一小段。//Splittheleftcontentargsistringstreamiss(left);while(getline(iss,s,'')){v.push_back(s);}//Getthesplitstringandputitintoarrayconstchar*cmd_left[v.size()+1];for(unsignedinti=0;i这被...利用了execvp(cmd_left[0],cmd_left);我的错误

c++ - gcc 和 g++ 错误 : error trying to exec 'cc1plus' : execvp: No such file or directory

我在编译时遇到问题.c和.cpp使用gcc的文件和g++,对于这两种情况,我都收到了消息:g++(orgcc):errortryingtoexec'cc1plus':execvp:Nosuchfileordirectory`我已经尝试重新安装gcc和g++并确保它们的版本相同。编辑:我使用的是ubuntu16.04.1LTS,g++和gcc的版本都是5.4.020160609。以下是echo|g++-v-xc++-fsyntax-only-的输出:Usingbuilt-inspecs.COLLECT_GCC=g++Target:x86_64-linux-gnuConfiguredwit

c++ - 在 C++ 中使用 execvp 的最佳实践

一开始我是这样写的char*argv[]={"ls","-al",...,(char*)NULL};execvp("ls",argv);但是,GCC弹出了这个警告,“C++禁止将字符串常量转换为char*。”然后,我将代码更改为constchar*argv[]={"ls","-al",...,(char*)NULL};execvp("ls",argv);因此,GCC弹出了这个错误,“从constchar**到char*const*的无效转换。”然后,我将代码更改为constchar*argv[]={"ls","-al",...,(char*)NULL};execvp("ls",(cha

安卓 ndk-r8 "error trying to exec ' cc1plus' : execvp: No such file or directory"

我正在按照本指南尝试在MountainLion上使用AndroidNDK为Android构建库http://masl.cis.gvsu.edu/2012/01/25/android-echoprint/当需要编译库时,我运行:cd/ndk-build我收到以下错误:Compile++thumb:echoprint-jni我相信我已经将我需要的一切添加到我的路径变量中:exportPATH=$PATH:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:Developer/android-sdk/tools:/Developer/android-sd

【ubuntu】gcc: fatal error: cannot execute ‘cc1plus’: execvp: No such file or directory

一、问题描述在ubuntu20.04系统中编译graphlearning源码时出现如下报错:gcc:fatalerror:cannotexecute‘cc1plus’:execvp:Nosuchfileordirectory按照其他网友的方法,我使用了这条命令:sudoaptinstallg++-aarch64-linux-gn但很不幸,又出现新的新的报错:E:Unabletolocatepackageg++-aarch64-linux-gn报错复报错,报错何其多。与其查博客,不如看信息。二、解决方法于是乎,我还是老老实实地回到最开始,报错的信息的意思大概是“缺少cc1plus目录或文件”。只

c++ - 使用 execvp() 执行 shell 命令

我想编写一个类似于Linuxshell的程序。我开始编写一个小程序来执行“ls”命令。我想不通的是我应该如何进行才能让我的程序像shell一样响应任何命令。(例如cat、cd、dir)。#include#include#include#include#defineMAX32usingnamespacestd;intmain(){pid_tc;chars[MAX];intfd[2];intn;pipe(fd);c=fork();if(c==0){close(fd[0]);dup2(fd[1],1);execlp("ls","ls","-l",NULL);return0;}else{clo

c++ - 使用 execvp() 执行 shell 命令

我想编写一个类似于Linuxshell的程序。我开始编写一个小程序来执行“ls”命令。我想不通的是我应该如何进行才能让我的程序像shell一样响应任何命令。(例如cat、cd、dir)。#include#include#include#include#defineMAX32usingnamespacestd;intmain(){pid_tc;chars[MAX];intfd[2];intn;pipe(fd);c=fork();if(c==0){close(fd[0]);dup2(fd[1],1);execlp("ls","ls","-l",NULL);return0;}else{clo

c - 为什么 execvp() 使用 fork() 执行两次?

我正在实现一个shell。尝试执行更改目录以外的命令时,execvp()运行,child终止并创建一个新的child。当我更改目录时,child不会终止并创建一个新的child。这是我的代码示例:for(;;){printf("bash:");parse();...pid_tpid=fork()if(pid==0)if(!strcmp(line[0],"cd"))if(!line[1])(void)chdir(getenv("HOME"));else(void)chdir(line[1]);elseexecvp(line[0],line);...if(pid>0){while(pid=