特定のファイルを取得し、txt を反転したファイルを作成するプログラムを作成することになっています。ファイルの正確なサイズがわからない場合、ファイルの最後から read() を開始し、作成されたファイルの最初のバイトにコピーする方法はありますか? また、これをグーグルで検索し、fread、fopenなどの多くの例に出くわしました。ただし、このプロジェクトではそれらを使用できません。読み取り、オープン、lseek、書き込み、およびクローズのみを使用できます。これまでの私のコードはそれほど多くはありませんが、参照用です:
#include<stdio.h>
#include<unistd.h>
int main (int argc, char *argv[])
{
if(argc != 2)/*argc should be 2 for correct execution*/
{
printf("usage: %s filename",argv[0[]);}
}
else
{
int file1 = open(argv[1], O_RDWR);
if(file1 == -1){
printf("\nfailed to open file.");
return 1;
}
int reversefile = open(argv[2], O_RDWR | O_CREAT);
int size = lseek(argv[1], 0, SEEK_END);
char *file2[size+1];
int count=size;
int i = 0
while(read(file1, file2[count], 0) != 0)
{
file2[i]=*read(file1, file2[count], 0);
write(reversefile, file2[i], size+1);
count--;
i++;
lseek(argv[2], i, SEEK_SET);
}