#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 功能,所以我不得不尝试使用sprintf。
但我无法读取结果文件。
创建的文件归我所有,但有权限------xr-x
。这意味着我的用户无法读取或写入文件,我的组根本没有访问权限,但奇怪的是其他用户可以读取它。
如果我按预期运行sudo cat transaction.txt
,该文件是可读的。13
如何生成具有适当权限的文件以便可用。
添加行
并修改 open call 如下: