状況など
C
1#include <stdio.h> 2#include <stdlib.h> 3#include <sys/types.h> 4#include <unistd.h> 5#include <sys/wait.h> 6#include <string.h> 7#define MAXLEN 256 8 9int main(){ 10 char *args[MAXLEN]; 11 char *tmp[MAXLEN]; 12 13(argsに文字列を格納する処理)
例えば
args[0] = md
args[1] = test
args[2] = NULL
などが入っています。
これを
args[0] = mkdir
args[1] = test
args[2] = NULL
とする(以下、この操作を「*」とします。)ために、argsをtmpにコピーしておいて、args[0]をmdからmkdirに書き換えて、残りをtmpからコピーしてくることを考えました。
質問
①そもそも*を実現する方法は上記で良いでしょうか?
②良い場合、どのようにコピーすればよいでしょうか?
C
1int i; 2for(i = 0; args[i] != NULL; ++i){ 3 strcpy(tmp[i], args[i]); 4 } 5 tmp[i+1] == NULL; 6 strcpy(args[0], p->real_name); 7 for(i = 1; args[i] != NULL; ++i){ 8 strcpy(args[i], tmp[i]); 9 }
p->real_name には"mkdir"が格納されています。
③違う場合、どのようにすればよいでしょうか?
調べたこと、試したことを追記してください。
回答2件
あなたの回答
tips
プレビュー