【发布时间】:2021-12-27 16:45:53
【问题描述】:
我正在尝试在我自己的 shell 中实现 append 命令。 我成功追加到现有文件,但每当我尝试追加到文件不存在时,它会在没有任何权限的情况下生成文件(不读取也不写入)
if (append) {
fd = open(outfile,'a');
lseek(fd,0,SEEK_END);
close (STDOUT_FILENO) ;
dup(fd);
close(fd);
/* stdout is now appended */
}
我应该怎么做才能使文件具有权限 ?
【问题讨论】:
-
基本调用是:
fd = open(outfile,O_WRONLY | O_CREAT | O_APPEND,0644);。不需要lseek。而且,为了安全起见,我会使用dup2