[問題] execvp的參數

看板C_and_CPP作者 (嘟嘟)時間15年前 (2010/10/13 12:38), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 最近在使用execvp的時候發現一個問題, 如果我直接預設好char *arglist[3]; 然後把字串丟進去 arg_list[0]= "ls"; arg_list[1]= "-l"; arg_list[2]= NULL; 之後使用execvp("ls",arg_list);這樣會是正確執行, 不過如果我設一個char *buf2[3]; 然後資料是從char temp[10];取得, 也就如底下的方式: temp[0] = 'l'; temp[1] = 's'; buf2[0] = temp; temp[0] = '-'; temp[1] = 'l'; buf2[1] = temp; buf2[2] = NULL; 再執行execvp("ls",buf2);卻會失敗, 得到cannot access : No such file or directory的問題, 可是我將arg_list跟buf2印出來,裡面的內容都是一模一樣的阿, 清問是哪裡出了問題呢? 卡在這邊卡了好久,希望各位高手可以指點一下,感謝大家! 希望得到的正確結果: 程式跑出來的錯誤結果: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) g++ 有問題的code: (請善用置底文標色功能) 補充說明: -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.210.88

10/13 12:58, , 1F
你沒有把字串結束掉...
10/13 12:58, 1F
文章代碼(AID): #1CjJVH6L (C_and_CPP)