「シンボリックリンク」はUNIX独特のものです.
大抵のOSでは,ファイルの別名を意味するアイコンを作ることができます.
Microsoft Windowsでは「ショートカット」,
Apple OS Xでは「エイリアス」というものを作って,
ファイル本体とは別のものとして別名のアイコンを作ることがあります.
UNIX独自のファイルの別名として「シンボリックリンク」を理解してください.
シンボリックリンクを作成するための関数に symlink というものがあります.
使い方は簡単です.
元のファイルのパス名を文字列として格納した記憶へのポインタを char *p1,
リンク(別名)のパス名を文字列として格納した記憶へのポインタを char *p2,
として symlink(p1,p2) として関数を呼び出すことでシンボリックリンクが作成されます.
正常に実行が終了した場合の戻り値は 0 です.
サンプルプログラム1: ファイル s_symlink.c のリンク(別名)を s_symlink_l として作成する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #include <stdio.h> #include <unistd.h> int main() { int r; char p1[] = "s_symlink.c", p2[] = "s_symlink_l", lnk[256]; r = symlink(p1,p2); if ( r == 0 ) { r = readlink(p2,lnk,256); fprintf(stderr,"symlnk success!: %s -> %s\n",p2,lnk); } else { fprintf(stderr,"symlnk failure.\n"); } } |
サンプルプログラム2: リンク s_symlink_l を解除する
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <stdio.h> #include <unistd.h> int main() { int r; char p[] = "s_symlink_l"; r = unlink(p); if ( r != 0 ) { fprintf(stderr,"unlnk failure: %d\n",r); } } |