#include < sys/types.h > #include < unistd.h > #includeint main(){ if (truncate("file.txt", 10) < 0){ perror("truncate"); return 1; } return 0; }
Month: June 2016
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; }
シンボリックリンク
#include < unistd.h >
#include < stdio.h >
int main (){
if (symlink("../file.txt", "newfile.txt") < 0){
perror("symlink");
return 1;
}
return 0;
}
rmdir
#include < unistd.h >
#include < stdio.h >
int main(){
if (rmdir("work") < 0){
perror("rmdir");
return 1;
}
return 0;
}
unlinkでファイルのエントリを削除
#include < unistd.h >
#include < stdio.h >
int main()
{
if (unlink("file.txt") < 0){
perror("unlink");
return 1;
}
return 0;
}
ファイルのハードリンク作成
#include < unistd.h >
#include < stdio.h >
int main(){
if (link("file.txt", "newlink.txt") < 0){
perror("link");
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;
}
ファイルclose
#include < unistd.h >
#include < stdio.h >
int main()
{
if (close(1) < 0){
perror("close");
return 1;
}
return 0;
}
write
#include < unistd.h >
#include < stdio.h >
int main()
{
ssize_t n;
if ((n = write(1, "Hello\n", 6)) < 0){
perror("write");
return 1;
}
return 0;
}
データ読み込み
#include < unistd.h >
#include < stdio.h >
int main(){
ssize_t n;
char buf[4096];
if ((n = read(0, buf, sizeof buf))< 0){
perror("read");
return 1;
}
write(1, buf, n);
return 0;
}