###ホームディレクトリのパスを取得したい
main関数の3つめの引数をHomePathに渡し,"HOMEPATH"(Windows), "HOME"(Mac)に一致部分が見つかったらmain関数の char *homeに格納することを期待したコードを書きました.
###エラー内容
実行させるとSegmentation fault: 11 のエラーが出てきます.
どうやらHomePath関数のif文の中でエラーがでているみたいですが,どこを直せば良いのかわかりません.
C
1#include <stdio.h> 2#include <string.h> 3#include <stdlib.h> 4 5int HomePath(char *envp, char *home) { 6 if (strstr(envp, "HOMEPATH") != NULL) { //Win 7 printf("%s\n", envp); 8 strcpy(home, envp); 9 return 1; 10 } else if (strstr(envp, "HOME") != NULL) { //mac 11 strcpy(home, envp); 12 printf("%s\n", envp); 13 return 1; 14 } 15 return 0; 16} 17 18int main(int argc, const char *argv[], char *envp[]) { 19 char *home; 20 int i; 21 22 for (i=0; envp[i]; i++) { 23 if (HomePath(envp[i], home)) break; 24 } 25 printf("home-> %s\n", home); 26 return 0; 27} 28
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/19 03:02