Я написал код, который в идеале должен брать данные из одного документа, шифровать их и сохранять в другом документе.
Но когда я пытаюсь выполнить код, он не помещает зашифрованные данные в новый файл. Это просто оставляет это пустым. Кто-нибудь, пожалуйста, определите, чего не хватает в коде. Я пытался, но я не мог понять это.
Я думаю, что-то не так с функцией чтения / записи, или, возможно, я неправильно реализую цикл do-while.
#include <stdio.h>
#include <stdlib.h>
#include <termios.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <unistd.h>
int main (int argc, char* argv[])
{
int fdin,fdout,n,i,fd;
char* buf;
struct stat fs;
if(argc<3)
printf("USAGE: %s source-file target-file.\n",argv[0]);
fdin=open(argv[1], O_RDONLY);
if(fdin==-1)
printf("ERROR: Cannot open %s.\n",argv[1]);
fdout=open(argv[2], O_WRONLY | O_CREAT | O_EXCL, 0644);
if(fdout==-1)
printf("ERROR: %s already exists.\n",argv[2]);
fstat(fd, &fs);
n= fs.st_size;
buf=malloc(n);
do
{
n=read(fd, buf, 10);
for(i=0;i<n;i++)
buf[i] ^= '#';
write(fd, buf, n);
} while(n==10);
close(fdin);
close(fdout);
}