bashなどの shell では "~/*" "$HOME/*" はホームディレクトリ以下のファイル名に展開されます. これをC/C++で実装する方法です 実装 wordexp(3) を使います #include <wordexp.h> #include <stdio.h> int main(int argc, char *argv[]) { wordexp_t exp; int flags = 0; int ret; ret = wordexp("~/*", &exp, flags); if (0 == ret){ int i; for (i=0; i<exp.we_wordc; i++){ printf("%s\n", exp.we_wordv[i]); } } wordfree(&exp); return 0; } なお wordexp は POSIX.1‐2001, POSIX.1
![C/C++でshellのように"~"や環境変数を展開する方法 - pyopyopyo - Linuxとかプログラミングの覚え書き -](https://cdn-ak-scissors.b.st-hatena.com/image/square/0e42612544b40a03cddbadb0ce13421a7772aad2/height=288;version=1;width=512/https%3A%2F%2Fm.media-amazon.com%2Fimages%2FI%2F51F4arHhYUL._SL500_.jpg)