2016-01-21 76 views
-1

我有一个char**数组,其中包含一个kill命令,稍后将在代码中使用exec()执行,每个条目包含一部分命令。例如:转换要存储在char *数组中的整数

kill 1234 

...将被表示为:

char **cmdList = {"kill","1234"}; 

现在,这里的问题:1234是最初pid_t类型的,由getpid()返回。我将其投射到int,现在我正在试图弄清楚如何转换它,以便我可以将它存储在char*阵列中。这是我到目前为止有:

char *cmdList[10]; // There will never be more than 10 commands 
cmdList[0] = "kill"; 
int pidHolder = (int)getpid(); 
char *pidChar = (char*)pidHolder; // How to convert int to char*? 
cmdList[1] = pidChar; 
printf("The job ID is %s \n", cmdList[1]); // Testing to see if it worked 

正如你可以想像,我得到一个分段错误在这里,但我似乎无法找出另一种方式为int转换为char*类型。

+2

'字符* cmdList = { “杀”, “1234”}'是无效的。除非你真的必须2)理解和3)接受**所有**的影响,否则不要投。一般情况下应避免使用强制类型。 – Olaf

回答

3

使用sprintf

int aInt = (int)getpid(); 
char str[15]; 
sprintf(str, "%d", aInt); 
0
char buffer[100]; 

sprintf(buffer, "kill %d", getpid());