理想的には、あるドキュメントからデータを取り込み、それを暗号化し、別のドキュメントに保存するコードを作成しました。
しかし、コードを実行しようとすると、暗号化されたデータが新しいファイルに入れられません。空白のままにするだけです。誰かがコードに欠けているものを見つけてください。やってみたけどわからなかった。
読み取り/書き込み機能に何か問題があると思います。または、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);
}