linux 上 write 如何写不进文件

linux 下 write 怎么写不进文件程序源码-------------------------------------------------#include sys

linux 下 write 怎么写不进文件
程序源码-------------------------------------------------
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <iostream>

using namespace std;
int main()
{
  int fd; 
  char buffer[]="write!";
  if(fd = open("t1.txt",O_WRONLY|O_CREAT,S_IRWXU | S_IROTH | S_IROTH) == -1) 
  {  
  cout<<"open file is fail"<<endl;
  return -1; 
  }  
  if(write(fd,buffer,sizeof(buffer)) == -1) 
  {  
  close(fd);
  cout<<"can't write!"<<endl;
  return -1; 
  }  
  close(fd);
  return 0;
}
用 g++ 可以编译通过而且文件可以执行
g++ -o write write.cpp
编译成可执行文件后执行并没有向想象的效果在 t1.txt 文件内写入 write! 而是在屏幕打印输出 write! 这个是什么问题?



[解决办法]
我记得标准库的API,写完要 flush一下,如调用fflush(fd),在close。
[解决办法]

探讨

引用:

S_IRWXU | S_IROTH | S_IROTH

没有一个W权限, 全是R.

S_IRWXU 不是有W与X权限么?

[解决办法]
不是标准库 难道 fp 和buf要换个位置吗