#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/stat.h>
void main(){
char tmp[12]={0x0};
int i=13;
sprintf(tmp,"%11d", i);
int fd = open("transaction.txt", O_CREAT | O_RDWR);
write(fd, tmp, sizeof(tmp));
}
我正在尝试将整数写入文件。
因为 linux 不提供 itoa 函数,所以我必须尝试使用打印.
但我无法读取结果文件。
创建的文件归我所有,但具有权限------xr-x
。这意味着我的用户无法读取或写入该文件,我的组根本没有访问权限,但奇怪的是其他用户可以读取它。
如果我运行,该文件是可读的,sudo cat transaction.txt
并且13
符合预期。
我如何生成具有适当权限的文件以便可以使用。
答案1
添加行
int fd;
并对公开招募进行如下修改:
fd = open("transaction.txt", O_CREAT | O_WRONLY, 00644);