㈠ linux c 的 open(文件路径,O_WRONLY | O_CREAT) 里面的与运算为什么可以实现打不开就创建
这个是位或,不是与。位或、位与是这样计算的。
如:二进制的 010 | 001 结果是 011,而 010 & 001 结果就是0了。
O_WRONLY 和 O_CREAT 的关系就相当于上面的 010 和 001。他们位或的值不是0,位与的值就是0了。0表示什么都不做。用了位或后,就在一个整型的值上设置了不同的标志位,open函数会检测对应的标志位,如果该标志位设置为1了,就执行对应的操作。
O_CREAT的意思就是创建的意思,在这里就是将 创建文件 的标志位设置为1,这样open函数无法写这个文件的时候就会创建他。
㈡ 我在linux下面用fopen函数创建文件,发现文件名长度不能超过8个字符,多余会被截除,请问是为什么
你ls -all看下全部的文件扩展名
其实在操作系统层根本就不管你是文本文件还是二进制文件的。所以这个文件扩展名加不加无所谓。文件后缀名一般是为了关联打开程序用的。在linux如果是terminal模式的话基本上没什么用
㈢ cannot create file是什么意思
该英文的释义是:不能够创建文件。但是不能够创建文件的原因有很多。例如:你使用 C 语言编写程序,程序中需要创建一个文件(fopen("my_filename", "w" ;),但是假设你是在UNIX/Linux 系统下面,你目前的状态是普通用户,不是在你自己的子目录下面,而是进入了系统目录,例如:/usr/bin、/usr/sbin、/,等等,你在这些目录下面创建文件,那么肯定是无法创建文件的;其他的原因还有可能是:由于系统缓冲区溢出造成无法创建文件,都是有可能的。
㈣ linux fopen返回NULL,errno为0,用perror输出的是Success,求解释。
你直接1:touch /home/1 创建一个文件;
2:vi 1;
3.输入几个字母abcde
4:wq//保存
fp = fopen( /home/1, "r");
if(fp==NULL) //如果失败了
{
printf("错误!");
exit(1); //中止程序
}
看看打开能行么,可能是宏定义的问题。
errno 记录系统的最后一次错误代码。代码是一个int型的值,在errno.h中定义的,你看到不一定是fopen失败记录的值。
手工,望采纳!
㈤ linux fopen函数 打开文件总是失败
是这样的再输入文件路径的时候要注意:
你的方向错了应该是"\"这样的反斜杠而且要输入两个反斜杠
因为字符串中的1个反斜杠的意思就是说他是个转意字符只有\\的时候才会显示出来1个字符向你的那个路径就应该写成fp=fopen("\\mnt\\yaffs\\red.txt")
有兴趣共同探讨C就给我留言啊
㈥ linux中,使用fopen函数打开文件失败
你可以看下,在来另一个目录的文件你源是否有访问权限,同一个目录下一般来说,你把他复制过来,这个文件的拥有者(owner)就是你了,你是肯定可以访问的。每个程序都有一个当前目录的环境变量,你在shell中执行程序时,shell程序就是你执行的程序的父进程,你的程序从shell程序中继承了当前目录,所以你只给定文件名时,当然打开的就是当前目录下的文件了