亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++基于LINUX的文件操作

 更新時間:2023年11月17日 10:48:29   作者:畢明鑫  
這篇文章主要為大家介紹了C++基于LINUX的文件操作示例知識擴充,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

引言

討論套接字的過程討論突然提及文件也許有些奇怪。但對于LINUX而言,socket操作和文件操作沒有區(qū)別,Linux一切皆為文件,因此文件的IO函數(shù)也是socket的IO函數(shù),本文旨在給讀者擴充知識,不必記住所謂的代碼

底層文件訪問和文件描述符

  • 底層:與標準無關底層提供的函數(shù)

文件描述符:系統(tǒng)分配給文件或者套接字的整數(shù),windows被稱為句柄,用來描述一種時間類型或者事務。

打開文件

#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
int open(const char* path, int flag)

關閉文件

#include<unistd.h>
int close(int fd);

fd->需要關閉的文件或者套接字的文件描述符

將數(shù)據(jù)寫入文件

#include&lt;unistd.h&gt;
ssize_t write(int fd, const void* buf,  size_t  nbytes);

fd顯示數(shù)據(jù)傳輸對象的文件描述符。

將數(shù)據(jù)寫入文件

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
void error_handling(char* message);
int main(void)
{
    int fd;
    char buf[]="Let's go!\n";
    fd=open("data.txt", O_CREAT|O_WRONLY|O_TRUNC);
    if(fd==-1)
        error_handling("open() error!");
    printf("file descriptor: %d \n", fd);
    if(write(fd, buf, sizeof(buf))==-1)
        error_handling("write() error!");
    close(fd);
    return 0;
}
void error_handling(char* message)
{
    fputs(message, stderr);
    fputc('\n', stderr);
    exit(1);
}
/*
root@com:/home/swyoon/tcpip# gcc low_open.c -o lopen
root@com:/home/swyoon/tcpip# ./lopen
file descriptor: 3 
root@com:/home/swyoon/tcpip# cat data.txt
Let's go!
root@com:/home/swyoon/tcpip# 
*/

讀取文件中的數(shù)據(jù)

#include <unistd.h>
ssize_t read(int fd, void* buf,  size_t nbytes);
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#define BUF_SIZE 100
void error_handling(char* message);
int main(void)
{
    int fd;
    char buf[BUF_SIZE];
    fd=open("data.txt", O_RDONLY);
    if( fd==-1)
        error_handling("open() error!");
    printf("file descriptor: %d \n" , fd);
    if(read(fd, buf, sizeof(buf))==-1)
        error_handling("read() error!");
    printf("file data: %s", buf);
    close(fd);
    return 0;
}
void error_handling(char* message)
{
    fputs(message, stderr);
    fputc('\n', stderr);
    exit(1);
}
/*
root@com:/home/swyoon/tcpip# gcc low_read.c -o lread
root@com:/home/swyoon/tcpip# ./lread
file descriptor: 3 
file data: Let's go!
root@com:/home/swyoon/tcpip# 
*/

文件描述符與套接字

下面將同時創(chuàng)建文件和套接字,并用整數(shù)形態(tài)比較返回的文件描述符值。

#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/socket.h>
int main(void)
{    
    int fd1, fd2, fd3;
    fd1=socket(PF_INET, SOCK_STREAM, 0);
    fd2=open("test.dat", O_CREAT|O_WRONLY|O_TRUNC);
    fd3=socket(PF_INET, SOCK_DGRAM, 0);
    printf("file descriptor 1: %d\n", fd1);
    printf("file descriptor 2: %d\n", fd2);
    printf("file descriptor 3: %d\n", fd3);
    close(fd1);
    close(fd2);
    close(fd3);
    return 0;
}

以上就是C++基于LINUX的文件操作的詳細內容,更多關于C++ LINUX文件操作的資料請關注腳本之家其它相關文章!

相關文章

  • 詳解C語言中strcpy()函數(shù)與strncpy()函數(shù)的使用

    詳解C語言中strcpy()函數(shù)與strncpy()函數(shù)的使用

    這篇文章主要介紹了詳解C語言中strcpy()函數(shù)與strncpy()函數(shù)的使用,是C語言入門學習中的基礎知識,需要的朋友可以參考下
    2015-08-08
  • C字符串與C++字符串的深入理解

    C字符串與C++字符串的深入理解

    本篇文章是對C字符串與C++字符串進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • 深入探究協(xié)程在C++中的實現(xiàn)方式

    深入探究協(xié)程在C++中的實現(xiàn)方式

    協(xié)程可以被看作是計算機程序中的獨立功能塊,它們在執(zhí)行過程中能夠暫停和恢復,與傳統(tǒng)的函數(shù)調用相比,協(xié)程更像是一種輕量級的線程,本文我們將深入探究協(xié)程在C++中的實現(xiàn)方式,文中有詳細的代碼示例供大家參考,需要的朋友可以參考下
    2023-12-12
  • C++實現(xiàn)銀行排隊系統(tǒng)

    C++實現(xiàn)銀行排隊系統(tǒng)

    這篇文章主要為大家詳細介紹了C++實現(xiàn)銀行排隊系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 十分鐘學會C++?Traits

    十分鐘學會C++?Traits

    本文試圖以最簡潔的方式闡述對C++?traits?的理解,當你理解了第二個例子的時候,相信你已經(jīng)理解了C++?traits,本文通過示例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2022-02-02
  • C語言實現(xiàn)掃雷游戲及其優(yōu)化

    C語言實現(xiàn)掃雷游戲及其優(yōu)化

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)掃雷游戲及其優(yōu)化,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • 詳解C++中future和promise的使用

    詳解C++中future和promise的使用

    future和promise的作用是在不同線程之間傳遞數(shù)據(jù),這篇文章主要為大家詳細介紹了C++中future和promise的具體使用,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-05-05
  • C++ ofstream與ifstream詳細用法

    C++ ofstream與ifstream詳細用法

    ofstream是從內存到硬盤,ifstream是從硬盤到內存,其實所謂的流緩沖就是內存空間
    2013-07-07
  • C++實現(xiàn)循環(huán)隊列

    C++實現(xiàn)循環(huán)隊列

    這篇文章主要為大家詳細介紹了C++實現(xiàn)循環(huán)隊列,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • C++實現(xiàn)JPEG格式圖片解析(附代碼)

    C++實現(xiàn)JPEG格式圖片解析(附代碼)

    這篇文章主要為大家詳細介紹了C++如何實現(xiàn)JPEG格式圖片解析功能,文中的示例代碼講解詳細,具有一定的學習價值,需要的可以參考一下
    2023-05-05

最新評論