복사 프로그램을 만들려고합니다. 이것은 리눅스의 cp 함수와 유사합니다. ./copy file1 file2를 사용하여 파일을 성공적으로 복사 할 수 있지만 소스의 전제가 대상에 복사되지 않습니다. 누구든지이 작업을 수행하는 방법을 알고 있습니까? 예제 및 코드는 아래에 나와 있습니다.Unix : C에서 원본 권한으로 파일 복사
내 파일 및 원래 사용 권한.
파일을 성공적으로 복사했지만 권한이 복사되지 않았습니다.
#define buff_s 4096
#define mod 0644
void printError(char *, char *);
main(int ac, char *txts[])
{
int input, output, n_chars;
char buf[buff_s];
struct stat file1;
struct stat file2;
stat(txts[1], &file1);
stat(txts[2], &file2);
if ((input=open(txts[1], O_RDONLY)) == -1)
printError("error", av[1]);
if ((output=creat(txts[2], mod)) == -1)
printError("error", txts[2]);
또한'read()'와'write()'는'int' 대신에'ssize_t'를 리턴한다는 것에주의하십시오. 그들은 같은 것이 아닙니다. –
지적 해 주셔서 감사합니다. – mmm
Garg365, 나는 당신이 제공하는 방법을 시도 할 것이다, 나는 그것도 잘 동작 할 것이라고 생각한다. – mmm