>54
pathの指定方法が間違っていないかい?
ドライブルートは/cygdriveの下にマウントされる。
char *newname = "R:\a";
ではなくて
char *newname = "/cygdrive/r/a";
だと思うよ。
試しにls /cygdriveに何がマウントされているか、確かめてみて。