我对目录权限有一个奇怪的问题。
在 C++ 应用程序中,我创建了一个文件夹,其中包含:
mkdir( "foldername", 777 );
但是我在尝试在该文件夹中创建文件时遇到问题,fopen()返回NULL并errno告诉我Permission denied. 所以我检查了,确实,我对创建的文件夹具有以下权限:dr----x--t
(根文件夹有drwxrwxr-x)
我查了一下,这个不寻常的t意思是“暂时的”,但我不知道这是什么意思。
chmod 777 foldername从 shell 完成这项工作并将属性设置为drwxrwxrwx,但我不能每次都手动完成。
问题:关于发生了什么的任何线索?为什么我的应用没有正确设置文件夹属性?这个“临时”属性的含义是什么?
(系统为 Ubuntu 12.04)
我想逐行读取大型文本数据文件。示例代码:
lines=0
while IFS=$' \t\n'
do
lines=$(($lines+1))
read val
echo "lines=$lines val=$val"
done < myfile
Run Code Online (Sandbox Code Playgroud)
问题:循环读取文件末尾!
$ wc -l myfile
41788 myfile
Run Code Online (Sandbox Code Playgroud)
开始时一切正常,我可以看到打印的数据,但循环在 41788 之后没有停止。计数器继续以空行运行,我必须按 CTRL-C'it 来停止。
检查了数据文件,没什么特别的。size=5088370 字节,字段以制表符分隔 (1)。
$ file myfile
myfile: ISO-8859 text, with CRLF line terminators
Run Code Online (Sandbox Code Playgroud)
关于这里发生了什么的任何线索?我错过了什么 ?
(1) 这些字段实际上是用 读取的read -a val,但我尝试了上面的简化代码来减少我的 MCWE。