linux无法打开并写入文件怎么解决?

linux无法打开并写入文件怎么解决?,第1张

lsattr /etc/ssh/sshd_config

----i--------e- /etc/ssh/sshd_config

这里的i 表示immutable,在文件上启用这个属性时,我们不能更改、重命名或者删除这个文件。这里的e 表示extent format,它表明该文件使用磁盘上的块的映射扩展。属于“正常”规则

hattr删除不可修改属性

root@pts/1 $ chattr -i /etc/ssh/sshd_config

iZ25zjpz5pqZ [~] 2017-12-16 10:59:14root@pts/1 $ lsattr /etc/ssh/sshd_config-------------e- /etc/ssh/sshd_configiZ25zjpz5pqZ [~] 2017-12-16 10:59:17root@pts/1 $ vim /etc/ssh/sshd_configiZ25zjpz5pqZ [~] 2017-12-16 10:59:26root@pts/1 $

从上面的 *** 作可以看到我们取消i设置之后可以成功修改该文件。

如果完成修改你可以让其恢复不可修改属性,可以执行chattr +i /etc/ssh/sshd_config

1. 文件write *** 作是原子的,多个进程同时写文件,原理上是没问题的。但是问题会出现在:如果多个进程写文件时是先lseek再write,就会出现覆盖。打开文件时使用append标志可以使先lseek再write这个 *** 作变成原子 *** 作,这样可以避免覆盖。

2. 多线程共享一个文件句柄的话,是不会有问题的。

3.

4.linux读写磁盘文件过程中,一般情况下并不是直接 *** 作磁盘上的文件,而是读写内存中的磁盘高速缓存,内核选择合适的时机把脏页同步到磁盘。所以读写文件时不立刻调用io不是因为你说的缓冲区,read和write是没有缓冲区的。

5. fprintf和printf一样,是有缓冲区的,不过大小我不知道,也没必要知道吧。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8548108.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存