lstat

#include < sys/types.h >
#include < sys/stat.h >
#include < unistd.h >

#include < time.h >
#include < stdio.h >

int main()
{
    struct stat buf;
    
    if(lstat("file.txt", &buf) < 0){
        perror("lstat");
        return 1;
    }
    
    printf("%s", ctime(&buf.st_mtime));
    return 0;
}

stat

#include < sys/types.h >
#include < sys/stat.h >
#include < unistd.h >

#include 
#include 

int main(){
    struct stat buf;
    
    if (stat("file.txt", &buf) < 0){
        perror("stat");
        return 1;
    }
    printf("%s", ctime(&buf.st_mtime));
    return 0;
}

truncate

#include < sys/types.h >
#include < unistd.h >

#include 

int main(){
    if (truncate("file.txt", 10) < 0){
        perror("truncate");
        return 1;
    }
    return 0;
}

readlink

#include 
#include 

int main()
{
    ssize_t n;
    char buf[4096];
    
    if ((n = readlink("newfile.txt", buf, sizeof buf - 1)) < 0){
        perror("readlink");
        return 1;
    }
    
    buf[n] = '\0';
    printf("%s\n", buf);
    
    return 0;
}

rmdir

#include < unistd.h >
#include < stdio.h >

int main(){
    if (rmdir("work") < 0){
        perror("rmdir");
        return 1;
    }
    return 0;
}

lseekプログラム

#include < sys/types.h >
#include < unistd.h >

#include < sys/stat.h >
#include < fcntl.h >
#include < stdio.h >

int main()
{
    int fd;
    off_t offset;
    ssize_t n;
    char buf[4096];
    
    if((fd = open("file.txt", O_RDONLY)) < 0){
        perror("open");
        return 1;
    }
    
    if ((offset = lseek(fd, 10, SEEK_SET)) < 0){
        perror("lseek");
        return 1;
    }
    
    if ((n = read(fd, buf, sizeof buf)) < 0){
        perror("read");
        return 1;
    }
    write(1, buf, n);
    
    return 0;
}