c_cpp “Linux的环境高级编程”作业1

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp “Linux的环境高级编程”作业1相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include <fcntl.h>
#include <unistd.h>
#include <cstring>

using namespace std;

int main() {
    const char* filePath = "/home/developerdong/task1.txt";
    const char* fileContent = "abcdefghijklmnopqrstuvwxyz";
    unsigned long contentLength = strlen(fileContent);
    int file = open(filePath, O_RDWR|O_CREAT|O_APPEND, 0777);
    if (file != -1){
        //首先写入测试数据
        long writedNum = write(file, fileContent, contentLength);
        if(writedNum != -1){
            //记录修改前和修改后的偏移量
            long oldPosition = lseek(file, 0, SEEK_CUR);
            long newPosition = lseek(file, 0, SEEK_SET);
            //如果修改前后偏移量相同,则说明以O_APPEND选项打开文件时不能修改偏移量
            if(oldPosition == newPosition){
                cout<<"不能修改偏移量"<<endl;
            }
            else{
                cout<<"可以修改偏移量"<<endl;
                char readContent[contentLength];
                long readNum = read(file, readContent, contentLength);
                //如果修改后读操作从文件尾部开始读,则读出数据的长度应该为0,否则说明从修改后偏移量开始读
                if(readNum > 0){
                    cout<<"修改后读操作从修改后的偏移量开始读"<<endl;
                }
                else{
                    cout<<"修改后读操作从文件尾部读"<<endl;
                }
            }
        }
        else{
            cout<<"写入测试数据失败"<<endl;
        }
        close(file);
    }
    else{
        cout<<"打开文件失败"<<endl;
    }
    return 0;
}

以上是关于c_cpp “Linux的环境高级编程”作业1的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp “Linux的环境高级编程”作业2

c_cpp 第1周为C程序员编写的C ++作业

c_cpp 给定Ñ个作业的集合{J1,J2,......,JN}。每个作业必须先由机器1处理,然后由机器2处理。作业籍需要机器Ĵ的处理时间为TJI。对于一个确定的作业调度,设Fji是作业我在

c_cpp 给定Ñ个作业的集合{J1,J2,......,JN}。每个作业必须先由机器1处理,然后由机器2处理。作业籍需要机器Ĵ的处理时间为TJI。对于一个确定的作业调度,设FJI是作业我在

c_cpp 【分支限界法】批处理作业调度

c_cpp 【动态规划】流水作业调度【3.9】