Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在C+中执行shell命令xdool+;在linux上 #包括 #包括 #包括 #包括 使用名称空间std; 内部主(空) { //正在尝试执行: //xdotool mousemove 1500 1500 //char命令[]=“/usr/bin/xdool\0”; char命令[]=“xdool\0”; char参数[]=“mousemove\0”; int src_x=1500; int src_y=1500; charx[5]; memset(x,0x00,5); sprintf(x,“%d”,src_x); chary[5]; memset(y,0x00,5); sprintf(y,“%d”,src_y); cout_C++_Linux_Exec_Xdotool - Fatal编程技术网

C++ 在C+中执行shell命令xdool+;在linux上 #包括 #包括 #包括 #包括 使用名称空间std; 内部主(空) { //正在尝试执行: //xdotool mousemove 1500 1500 //char命令[]=“/usr/bin/xdool\0”; char命令[]=“xdool\0”; char参数[]=“mousemove\0”; int src_x=1500; int src_y=1500; charx[5]; memset(x,0x00,5); sprintf(x,“%d”,src_x); chary[5]; memset(y,0x00,5); sprintf(y,“%d”,src_y); cout

C++ 在C+中执行shell命令xdool+;在linux上 #包括 #包括 #包括 #包括 使用名称空间std; 内部主(空) { //正在尝试执行: //xdotool mousemove 1500 1500 //char命令[]=“/usr/bin/xdool\0”; char命令[]=“xdool\0”; char参数[]=“mousemove\0”; int src_x=1500; int src_y=1500; charx[5]; memset(x,0x00,5); sprintf(x,“%d”,src_x); chary[5]; memset(y,0x00,5); sprintf(y,“%d”,src_y); cout,c++,linux,exec,xdotool,C++,Linux,Exec,Xdotool,在汇编args时,需要添加“xdool”作为第一个参数 从forexecvp: 按照惯例,第一个参数应该指向文件名 与正在执行的文件关联 因此它应该是char*args[]={“xdool”,参数,x,y,nullptr};组装args时,需要添加“xdool”作为第一个参数 从forexecvp: 按照惯例,第一个参数应该指向文件名 与正在执行的文件关联 所以它应该是char*args[]={“xdool”,参数,x,y,nullptr}; #include <unistd.h>

在汇编
args
时,需要添加“xdool”作为第一个参数

从for
execvp

按照惯例,第一个参数应该指向文件名 与正在执行的文件关联


因此它应该是
char*args[]={“xdool”,参数,x,y,nullptr};

组装
args
时,需要添加“xdool”作为第一个参数

从for
execvp

按照惯例,第一个参数应该指向文件名 与正在执行的文件关联

所以它应该是
char*args[]={“xdool”,参数,x,y,nullptr};

#include <unistd.h>
#include <cstdio>
#include <iostream>
#include <string.h>

using namespace std;

int main(void)
{

//  Trying to execute:
//      xdotool mousemove 1500 1500

//    char command[] = "/usr/bin/xdotool\0";
    char command[] = "xdotool\0";
    char argument[] = "mousemove\0";
    int src_x = 1500;
    int src_y = 1500;

    char x[5];
    memset(x, 0x00, 5);
    sprintf(x, "%d", src_x);
    char y[5];
    memset(y, 0x00, 5);
    sprintf(y, "%d", src_y);

    cout << "command is " << command << "\n";
    cout << "argument is " << argument << "\n";
    cout << "x is " << x << "\n";
    cout << "y is " << y << "\n\n";

    char *args[] = {argument, x, y, nullptr};
    return execvp(command, args);
/*    char *args[] = {x, y, nullptr};
    char *com[] = {argument, nullptr};
    return execvpe(command, com, args);
    */
}