简体   繁体   中英

how to change color of xeyes using a path in c?

all this in Linux not windows

hello i want to know how i can change the color of xeyes like we can do in terminal like

xeyes -fg blue now i want to to do this in c program using path

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>

#include <string.h>
#include <malloc.h>

//#inlcude <windows.h>

#define LB_SIZE 1024

int main(int argc, char *argv[])
{
  char fullPathName[] = "/usr/bin/X11/xeyes";
  char *myArgv[LB_SIZE];  // an array of pointers

  myArgv[0] = (char *) malloc(strlen(fullPathName) + 1);
  strcpy(myArgv[0], fullPathName);

  myArgv[1] = NULL;  // last element should be a NULL pointer

  execvp(fullPathName, myArgv);
  exit(0);  // should not be reached
}

if i simply call /usr/bin/X11/xeyes it just show eyes

now i am trying to add command like /usr/bin/X11/xeyes-fg but its not working

any suggestion?

You can add onto the argument vector, like this:

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

#include <string.h>
#include <malloc.h>

#define LB_SIZE 1024

int main(int argc, char *argv[])
{
  char fullPathName[] = "/usr/bin/X11/xeyes";
  char *myArgv[LB_SIZE];  // an array of pointers
  int n = 0;

  myArgv[0] = (char *) malloc(strlen(fullPathName) + 1);
  strcpy(myArgv[n++], fullPathName);
  myArgv[n++] = "-fg";
  myArgv[n++] = "blue";

  myArgv[n] = NULL;  // last element should be a NULL pointer

  execvp(fullPathName, myArgv);
  exit(0);  // should not be reached
}

Here is a picture of the result: xeyes-蓝点

Offhand, I would have expected strace to show the file rgb.txt being opened, but do not see this using -f option (assume it happens in the server). The "blue" does show up in a trace, but only in the exec call, eg,

execve("/usr/bin/X11/xeyes", ["/usr/bin/X11/xeyes", "-fg", "blue"], [/* 62 vars */]) = 0

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM