Linux C++
文章平均质量分 82
Linux C++
Torch_HXM
这个作者很懒,什么都没留下…
展开
-
Linux多进程编程1-创建进程
execl的第一个参数是执行文件的路径,第二个参数是该执行文件所需的输入(执行文件传参),和我们main(int argc, char** argv)中的argv部分一样,执行文件传参的第一个参数argv[0]一般是文件名(可以是任何字符,一般设置为文件名或命令名)。可以看到,在父进程中我们所获得的子进程的PID和在子进程中所获得的PID是一致的(7826)。exec函数族同样可以创建进程,与fork不同的是,exec创建的进程会取代父进程,甚至会占有父进程的PID,实打实的进程界的“鬼上身”。原创 2023-09-20 18:42:23 · 229 阅读 · 1 评论 -
Linux文件编程6-C++
在C++语言中,数据的输入和输出(I/O)包括对标准输入设备(键盘)和标准输出设备(显示器)、外存磁盘文件、内存中指定字符串储存空间进行输入和输出三个方面,分别简称为标准I/O,文件I/O,串I/O。ifstream和ofstream再打开文件时如果文件不存在则会创建文件,而fstream当文件不存在时虽然不报错,但是后续对文件的操作无法生效。,三种I/O对应着三种文件流,分别是标准I/O流,文件I/O流和字符串I/O流。如若想获得某一部分的大小,则可以该部分内容的起始位置和终止位置的序号相减。原创 2023-09-20 11:54:53 · 147 阅读 · 1 评论 -
Linux文件编程5-文件的内存映射(mmap)
频繁地读取和写入文件十分耗时,如果能将文件加载到内存中,则读取和写入的主体就变成了程序和内存而不是程序和文件,大大减小时间开销。另外,将文件映射到内存中并由多个进程访问,能够实现进程之间共享内存。,表示进程独享该内存映射,并且不将内存映射中的修改写入原文件(时间上此处由于prot参数的问题也无法修改)。中的prot和flag参数,就可以让我们具有权限去实现修改内存映射,并将内存映射保存到原文件中。,表示这块内存映射可以读取;先向文件中追加了一个字符’\0’,来满足。函数中,我们设置prot参数为。原创 2023-09-19 16:01:07 · 310 阅读 · 1 评论 -
Linux文件编程4-文件锁定(fcntl)
建议性锁会给文件设置一个标志位,但是,如果对文件操作之前不对该标志位进行检测,那么建议性锁就会形同虚设,其他进程依旧可以对文件进行操作。而强制性锁会让上锁的进程“霸占”这个文件的一些权限,比如一个进程A对文件F设置了一个只允许读操作的强制性锁(读取锁),那么进程B就只能对文件F进行读取,而不能写入或执行,这种锁定状态会一直持续到进程A给文件F解锁。除了锁定文件,文件的某一个状态记录也可以被上锁,称为。这就证明了,虽然我们给文件加了写入锁,但由于该锁的性质是建议锁,所以其他进程仍然可以向文件中写入内容。原创 2023-09-19 14:14:43 · 352 阅读 · 1 评论 -
Linux文件编程3-文件状态
文件的状态被储存在一个。原创 2023-09-19 12:42:46 · 154 阅读 · 1 评论 -
Linux文件编程2-基础IO
当打开或者创建一个文件的时候,内核就会向进程返回一个文件描述符(非负整数),所有对文件的后续操作都通过该文件描述符来完成。系统的文件描述符是有限的,打开文件后一定要记得关闭,及时将文件描述符释放。所以,在创建文件时,一定要设置权限,不然,即使创建成功,即使flags中规定以读写的方式打开,即使程序不报错,也会因为权限问题无法读写成功。中的示例在打开文件后并没有关闭文件的步骤,这样会使得内核分配给我们的文件描述符无法被释放(重启后自动释放)。系统的文件描述符数量是有限的,在程序中打开文件后一定要记得关闭。原创 2023-09-18 16:38:09 · 139 阅读 · 1 评论 -
Linux文件编程1-基本概念
i节点、权限、目录文件原创 2023-09-16 14:35:54 · 360 阅读 · 1 评论