Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Can';触摸屏';工作和';mkdir';失败?_Android_Unix_Mkdir_Inode_Terminal Emulator - Fatal编程技术网

Android Can';触摸屏';工作和';mkdir';失败?

Android Can';触摸屏';工作和';mkdir';失败?,android,unix,mkdir,inode,terminal-emulator,Android,Unix,Mkdir,Inode,Terminal Emulator,在目录中,是否会出现touch工作而mkdir失败的情况 我知道这两个调用都涉及到写入父目录的inode。因此,如果touch工作,它是否自动意味着inode是可写的,因此,mkdir不可能失败 这是Android(我只听到一个报告,实际上没有看到这个案例),命令是从/system目录下的终端仿真器运行的(在请求su之后),但在我看来这没有什么区别 编辑: mkdir因“权限被拒绝”而失败。我可以想出几种方法来实现这一点: 1) 如果已达到目录中子目录的最大数量(通常约32000个),您将无法

在目录中,是否会出现
touch
工作而
mkdir
失败的情况

我知道这两个调用都涉及到写入父目录的
inode
。因此,如果touch工作,它是否自动意味着inode是可写的,因此,
mkdir
不可能失败

这是Android(我只听到一个报告,实际上没有看到这个案例),命令是从
/system
目录下的终端仿真器运行的(在请求
su
之后),但在我看来这没有什么区别


编辑:
mkdir因“权限被拒绝”而失败。

我可以想出几种方法来实现这一点:

1) 如果已达到目录中子目录的最大数量(通常约32000个),您将无法
mkdir
,但可以
触摸文件


2) 如果磁盘空间非常少,您将无法
mkdir
,因为它需要4K,但您可以
触摸文件。

我可以想出几种方法来实现这一点:

1) 如果已达到目录中子目录的最大数量(通常约32000个),您将无法
mkdir
,但可以
触摸文件


2) 如果磁盘空间非常少,您将无法
mkdir
,因为它需要4K,但您可以
触摸文件。

也许您没有父目录的写入权限?如果您拥有目录中的现有文件或对这些文件具有写入权限,您仍然可以触摸目录中的现有文件。(但是,对不存在的文件调用touch仍将失败,因为该目录是只读的。)


父目录上的
stat
touch
ed文件的输出是什么?

也许您没有父目录的写入权限?如果您拥有目录中的现有文件或对这些文件具有写入权限,您仍然可以触摸目录中的现有文件。(但是,对不存在的文件调用touch仍将失败,因为该目录是只读的。)



父目录上的
stat
touch
ed文件的输出是什么?

感谢您的回复!我认为这两件事都没有发生。没有其他方法吗?还有,为什么mkdir会占用更多的空间?由于额外的元数据,空目录比空文件占用更多的空间。感谢您的回复!我认为这两件事都没有发生。没有其他方法吗?还有,为什么mkdir会占用更多的空间?由于额外的元数据,空目录比空文件占用更多的空间。名称是否正在使用
touch
不介意文件是否存在,在这种情况下,它只更新时间戳<另一方面,code>mkdir
总是尝试创建一个新目录,如果该名称已被现有文件或目录使用,则会失败。@user4815162342其中没有其他目录。尝试了几个随机名称。@user4815162342 mkdir失败,权限被拒绝。该名称正在使用吗
touch
不介意文件是否存在,在这种情况下,它只更新时间戳<另一方面,code>mkdir
总是尝试创建一个新目录,如果该名称已被现有文件或目录使用,则会失败。@user4815162342其中没有其他目录。尝试了几个随机名称。@user4815162342 mkdir失败,权限被拒绝。我需要检查一下。但是如果我没有对父级的写入权限,mkdir不是也会失败吗?但是你说mkdir确实失败了。或者,如果您的意思是触摸,则不需要对父级具有写入权限即可触摸其中的文件。我自己也刚测试过。哎呀,我是说触摸。我刚刚测试了它,当我从父级删除写权限时,我不能触及其中的文件,这是有意义的,因为目录inode无法写入。怎么会让你这么做?!啊,我应该说得更清楚。您可以触摸目录中的现有文件,因为它只需要更新其访问时间,而不需要创建新文件。我将编辑我的答案以反映这一点。+1这是有意义的。但在本例中,没有该名称的现有文件,因此我正在编写一个新文件。我需要检查它。但是如果我没有对父级的写入权限,mkdir不是也会失败吗?但是你说mkdir确实失败了。或者,如果您的意思是触摸,则不需要对父级具有写入权限即可触摸其中的文件。我自己也刚测试过。哎呀,我是说触摸。我刚刚测试了它,当我从父级删除写权限时,我不能触及其中的文件,这是有意义的,因为目录inode无法写入。怎么会让你这么做?!啊,我应该说得更清楚。您可以触摸目录中的现有文件,因为它只需要更新其访问时间,而不需要创建新文件。我将编辑我的答案以反映这一点。+1这是有意义的。但在本例中,没有该名称的现有文件,因此我正在编写一个新文件。