这个是位或,不是与。位或、位与是这样计算的。如:二进制的010|001结果是011,而010&001结果就是0了。O_WRONLY和O_CREAT的关系就相当于上面的010和001。他们位或的值不是0,位与的值就是0了。0表示什么都不做。用了位或后,就在一个整型的值上设置了不同的标志位,open函数会检测对应的标志位,如果该标志位设置为1了,就执行对应的操作。O_CREAT的意思就是创建的意思,在这里就是将创建文件的标志位设置为1,这样open函数无法写这个文件的时候就会创建他。

在linux中,open函数用于打开文件,并返回一个文件描述符。文件描述符是一个非负整数,用于标识打开的文件。当open函数成功打开文件时,它会返回一个大于等于3的文件描述符。其中,标准输入、标准输出和标准错误输出的文件描述符分别为0、1和2。
因此,当open函数返回3时,表示成功打开了一个新的文件,并且该文件的文件描述符为3。这个文件描述符可以用于后续的读写操作。