我正在尝试复制文件以仅使用open()
,read()
和write()
. 但是我想知道是否有一种方法可以从读取中获取 char 指针,该指针返回读取的字节数。如果是这样,我该怎么做我已经尝试过一次但我最终遇到了一个错误
error: invalid type argument of ‘unary *’ (have ‘ssize_t’)
这是我正在使用的代码片段
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main (int argc, char *argv[])
{
if(argc != 3)/*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_WRONLY, O_CREAT);
int size =(int)lseek(file1, 0, SEEK_END)+1;
char file2[size];
int count=size;
int i = 0;
while(read(file1, &file2[count], 1) != 0)
{
*file2[i]=*read(file1, file[count], 1);
write(reversefile, file2[i], size+1);
count--;
i++;
lseek(reversefile, i, SEEK_SET);
}
}