我使用c套接字程序创建了一个txt文件(名为“output.txt”)。它已被创建,但我没有权限打开该txt文件。当我执行我的程序2天后,我可以打开output.txt文件。为什么我现在不能打开它?
我的output.txt文件的权限是
-r----x--t 1 root root 12288 Oct 19 10:24 output.txt
创建代码:
new_sockfd = accept(sockfd,(struct sockaddr *)&client_address, &client_len);
if (new_sockfd==-1) { perror("Connection Not Accepted!!"); return(1);}
else
{
printf("client is connected\n");
log=open("output.txt",O_CREAT|O_RDWR|O_APPEND,777);
do
{
x1=read(new_sockfd, buffer1, 1024);
x2=write(log,buffer1,x1);
}
while (x1>0);
close(log);
}
close(new_sockfd);
答案 0 :(得分:2)
777
那是小数。将其更改为0777(八进制)。
答案 1 :(得分:1)
看起来你已经在root下创建了文件,但是尝试在普通用户帐户下读取,chmod到root下的0666
这是因为你在开放功能中有不正确的标志,你有将它们设置为0777或0666,0是必须的