小编Joh*_*ohn的帖子

创建文件并分配权限

似乎我把PERMS所创建的文件具有相同的权限 - rwx rx rx

我尝试了755和777,权限保持不变.

#include<stdio.h>
#include<stdlib.h>
#include<fcntl.h>
#include<unistd.h>
#include<sys/stat.h>
#define PERMS 0777

int main(int argc, char *argv[])
{
    int createDescriptor;
    char fileName[15]="Filename.txt";

    if ((createDescriptor = creat(fileName, PERMS )) == -1)
    {
        printf("Error creating %s", fileName);
        exit(EXIT_FAILURE);
    }

    if((close(createDescriptor))==-1)
    {
        write(2, "Error closing file.\n", 19);
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c posix file-permissions

1
推荐指数
1
解决办法
615
查看次数

C编程文件大小

我试图在创建文件并向其写入数据后获取文件的大小.我得到的值似乎与实际文件大小不符.这是我的计划.请告诉我如何以Bits,Bytes,Kilobytes和Megabytes显示文件大小.据我说,文件大小应该是288位,36字节,0.03515626千字节和0.000034332兆字节.

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/stat.h> 
#include <sys/types.h> 
#define PERMS 0777

int main(int argc, char *argv[])
{
    int createDescriptor;
    int openDescriptor;

    char fileName[15]="Filename1.txt";
    umask(0000);

    if ((openDescriptor = creat(fileName, PERMS )) == -1)
    {
        printf("Error creating %s", fileName);
        exit(EXIT_FAILURE);
    }


    if(write(openDescriptor,"This will be output to testfile.txt\n",36 ) != 36)
    {
        write(2,"There was an error writing to testfile.txt\n",43);
        return 1;
    }

    if((close(openDescriptor))==-1)
    {
        write(2, "Error closing file.\n", 19);
    }
    struct stat buf;
    fstat(openDescriptor, &buf);
    int size=buf.st_size;
    printf("%d\n",size); …
Run Code Online (Sandbox Code Playgroud)

c file filesize

0
推荐指数
1
解决办法
714
查看次数

标签 统计

c ×2

file ×1

file-permissions ×1

filesize ×1

posix ×1