#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
int main()
{
int fp;
int i;
int len;
char buf[300];
memset(buf, 0x00, 300);
if((fp=open("texti",O_RDWR)) == 0)
{
perror("open: ");
exit(0);
}
write((int)fp,"Have a goodtime.", 16);
close((int)fp);
//https://l...content-available-to-author-only...e.net/man/3/open
//int open(const char *path, int oflag, ... );
if((fp=open("texti",O_RDWR)) == 0)
{
perror("open: ");
exit(0);
}
//fgets(buf,16,(FILE*)fp);
read(fp, buf, 16);
printf("%s\n", buf);
/*
//http://w...content-available-to-author-only...s.com/reference/cstdio/fgets/
//char * fgets ( char * str, int num, FILE * stream );
while(fgets(buf,sizeof(buf),(FILE*)fp)!= NULL)
{
len = strlen(buf);
for(i=0; i<len; i++)
{
if((buf[i] >= 'a') && (buf[i] <= 'z'))
{
buf[i] -= ('a'-'A');
}
}
}
*/
//https://l...content-available-to-author-only...e.net/man/3/write
//ssize_t write(int fildes, const void *buf, size_t nbyte);
write((int)fp,buf,sizeof(buf));
//https://l...content-available-to-author-only...e.net/man/3/close
//int close(int fildes);
close((int)fp);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8ZmNudGwuaD4KI2luY2x1ZGUgPHVuaXN0ZC5oPgogCmludCBtYWluKCkKewogICAgICAgIGludCBmcDsKICAgICAgICBpbnQgaTsKICAgICAgICBpbnQgbGVuOwogICAgICAgIGNoYXIgYnVmWzMwMF07CgptZW1zZXQoYnVmLCAweDAwLCAzMDApOwoKICAgICAgICBpZigoZnA9b3BlbigidGV4dGkiLE9fUkRXUikpID09IDApCiAgICAgICAgewogICAgICAgICAgICAgICAgcGVycm9yKCJvcGVuOiAiKTsKICAgICAgICAgICAgICAgIGV4aXQoMCk7CiAgICAgICAgfQogICAgICAgIHdyaXRlKChpbnQpZnAsIkhhdmUgYSBnb29kdGltZS4iLCAxNik7CiAgICAgICAgY2xvc2UoKGludClmcCk7CgoKIAkJLy9odHRwczovL2wuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmUubmV0L21hbi8zL29wZW4KIAkJLy9pbnQgb3Blbihjb25zdCBjaGFyICpwYXRoLCBpbnQgb2ZsYWcsIC4uLiApOwogICAgICAgIGlmKChmcD1vcGVuKCJ0ZXh0aSIsT19SRFdSKSkgPT0gMCkKICAgICAgICB7CiAgICAgICAgICAgICAgICBwZXJyb3IoIm9wZW46ICIpOwogICAgICAgICAgICAgICAgZXhpdCgwKTsKICAgICAgICB9CgovL2ZnZXRzKGJ1ZiwxNiwoRklMRSopZnApOwpyZWFkKGZwLCBidWYsIDE2KTsKcHJpbnRmKCIlc1xuIiwgYnVmKTsKCiAvKgoJCS8vaHR0cDovL3cuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLnMuY29tL3JlZmVyZW5jZS9jc3RkaW8vZmdldHMvCgkJLy9jaGFyICogZmdldHMgKCBjaGFyICogc3RyLCBpbnQgbnVtLCBGSUxFICogc3RyZWFtICk7CiAgICAgICAgd2hpbGUoZmdldHMoYnVmLHNpemVvZihidWYpLChGSUxFKilmcCkhPSBOVUxMKQogICAgICAgIHsKICAgICAgICAgICAgICAgIGxlbiA9IHN0cmxlbihidWYpOwogICAgICAgICAgICAgICAgZm9yKGk9MDsgaTxsZW47IGkrKykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoKGJ1ZltpXSA+PSAnYScpICYmIChidWZbaV0gPD0gJ3onKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZltpXSAtPSAoJ2EnLSdBJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gCgogICAgICAgIH0KKi8KIAkJCQkvL2h0dHBzOi8vbC4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uZS5uZXQvbWFuLzMvd3JpdGUKCQkJCS8vc3NpemVfdCB3cml0ZShpbnQgZmlsZGVzLCBjb25zdCB2b2lkICpidWYsIHNpemVfdCBuYnl0ZSk7CiAgICAgICAgICAgICAgICB3cml0ZSgoaW50KWZwLGJ1ZixzaXplb2YoYnVmKSk7CgoJCS8vaHR0cHM6Ly9sLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5lLm5ldC9tYW4vMy9jbG9zZQoJCS8vaW50IGNsb3NlKGludCBmaWxkZXMpOwogICAgICAgIGNsb3NlKChpbnQpZnApOwogICAgICAgIAogICAgICAgIHJldHVybiAwOwp9