Linux 基础IO

   

一:open(打开文件),open原型   int open(const char* path, int oflag)

path 打开或创建文件的名字,oflag 说明函数的多个选项

       命令:vim 1.c

                    #include<stdio.h>

                    #include <fcntl.h>

                    int main()

                {                                                            //    假设打开的是当前目录中的test文件。    

                    int i = open ("./test", O_RDONLY);        

                    if(i == -1)

                    printf("error");

                    printf("%d\n",i);

                    return 0;

                }                                                           

                                                                            //open函数返回一个操作数假如打开成功则返回一个没被使用的文件描述 符 //通常文件描述符0表示标准输入1 标准输表示出2 标准错误关联      若成功在我自己的linux中返回3 反之失败的话就返回-1           

  read    #include <unistd.h>

                        ssize_t read(int fd, void *buf, size_t nbytes)         参数:文件描述符,读的文件,读的大小

  使用案例:        int i= read(3, "./test", 10);
                            if (i = -1)  printf("error");
                             printf("%d\n", i);         
        write          #include<unistd.h>
                    ssize_t write(int fd, const void* buf, size_t nbyte)  nbyte == 返回值则正确
                    错误原因:    1:写太多,超过给定进程文件长度
                                      2:磁盘写满了

    close:      #include <unistd.h>

                    ssize_t close (int fd);

                            进程终止,内核自动关闭他所打开的文件

   fd与file        

                            

二:自主编写shell


三:动态库 静态库

    静态库:把平常需要反复使用的公共代码编译为“库”, 链接中连接器从库文件取得代码复制到可执行文件中






动态库:执行到相关函数调用动态库