![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 70
ls-R
这个作者很懒,什么都没留下…
展开
-
linux学习(软硬链接+静态库)[15]
删除任何一个硬链接不会影响其他硬链接和目标文件,只有当所有硬链接和目标文件都被删除时,才会释放文件的磁盘空间。总结来说,软链接是一个指向目标文件或目录的路径,可以跨文件系统,可以指向不存在的文件或目录,删除软链接不会影响目标文件或目录。而硬链接是多个文件项共享相同的索引节点和数据块,只能在同一个文件系统中创建,不能指向目录,删除任何一个硬链接不会影响其他硬链接和目标文件。软链接是一个特殊的文件,它包含了指向目标文件或目录的路径。是指要创建链接的文件或目录的路径,是指创建的链接文件的路径和名称。原创 2023-08-21 17:36:53 · 148 阅读 · 0 评论 -
linux学习(文件系统+inode)[14]
内存–掉电易失存储介质磁盘–永久性存储介质 - SSD,U盘,flash卡,光盘,磁带磁盘是一个外设+计算机中唯一的机械设备原创 2023-08-20 17:45:58 · 117 阅读 · 0 评论 -
linux学习(文件描述符)[13]
所以fork的时候函数执行完毕,但是数据还在缓冲区中未刷新。所以会有父子两份数据在fork()之前ffush()(c语言的接口,刷新缓冲区)fflush(stdout),就不会有重复。原创 2023-08-19 18:00:33 · 103 阅读 · 0 评论 -
linux学习(文件描述符)[12]
重定向后,fork导致次数增多(缓冲区刷新策略)一切都被描述为struct file。一块内存空间:存够一定数据就会刷新。1.用户强制刷新(fflush)2.行刷新(行缓冲)遇到\n。从上往下找,匹配数字最小的。3.满刷新(全缓冲)原创 2023-08-18 17:18:27 · 106 阅读 · 0 评论 -
linux学习(文件描述符)[11]
是2,这是因为在Unix/Linux系统中,每个进程都有一个文件描述符表,其中前三个文件描述符分别是0、1和2。在Linux下,有一些与文件操作相关的宏可以用于处理文件描述符和文件权限。用代码创建的文件,默认路径在可执行文件同级目录下(本质是进程通过系统接口创建的)这些宏用于表示标准输入、标准输出和标准错误输出的文件描述符。返回的文件描述符可以用于后续的文件操作。设置了文件的权限,使得用户具有读和写的权限。返回值是实际写入的字节数。:打开一个文件,并返回一个文件描述符。参数一起使用,以设置文件的权限。原创 2023-08-17 19:24:20 · 252 阅读 · 0 评论 -
linux学习(进程替换)[10]
如果返回值为0,则表示是子进程,子进程中执行了自己的代码,并使用。执行成功,则子进程的代码会被替换为新的代码,否则会打印错误信息。需要替换为自己的可执行文件的路径。此外,还需要将自己的代码编译为可执行文件,并确保具有执行权限。在加载新程序进去之前,父子之间的的代码是共享的,数据写时拷贝进子进程。数组,其中包含要传递给子进程的环境变量。函数来运行自己的可执行文件,并将环境变量数组作为参数传递给它。替换为自己的可执行文件的路径,并根据需要修改环境变量数组。函数的最后一个参数是一个指向环境变量数组的指针。原创 2023-08-15 21:15:49 · 190 阅读 · 0 评论 -
linux学习(自写shell)[11]
strtok第一次调用传入原始字符串,第二次如果还要解析原始字符串则传入空。用来保存完整的命令行。加上颜色和部分连续命令。原创 2023-08-15 21:11:37 · 110 阅读 · 0 评论 -
linux学习(等待+进程替换初识)[9]
阻塞等待系统调用:在Linux中,许多系统调用函数可以使进程或线程进入阻塞等待状态,直到某个条件满足。非阻塞等待是指进程或线程在等待某个条件满足时,不会被暂停执行,而是继续执行其他任务。在Linux中,阻塞等待是指一个进程或线程被暂停执行,直到某个条件满足或事件发生。阻塞等待同步原语:除了系统调用外,Linux还提供了一些同步原语,用于实现线程之间的阻塞等待。这些同步原语可以帮助线程进行有效的互斥和同步,并实现线程之间的阻塞等待。当条件满足时,阻塞等待的系统调用会返回,并使进程或线程继续执行。原创 2023-08-15 15:51:01 · 57 阅读 · 0 评论 -
linux学习(进程管理)[8]
但是一般而言os无法提前知道哪些空间可能会被写入,即使拷贝也不知拷贝时间。子进程0,父进程1,失败-1。原创 2023-08-11 17:40:13 · 127 阅读 · 0 评论 -
linux学习(地址空间)[7]
在子进程中修改变量值,不会和父进程同步,但是地址空间相同(此地址不是物理内存的地址)(而是虚拟地址–线性地址)几乎所有的语言,如果有地址的概念,这个地址一定是虚拟地址,不是物理地址。原创 2023-08-11 16:34:41 · 96 阅读 · 0 评论 -
linux(进程)[6]
top命令:top命令用于实时显示系统中运行的进程和系统资源的使用情况。pidof命令:pidof命令用于根据进程名获取进程的PID。命令将显示所有包含 “myproc” 关键字的进程信息。Linux下执行一条命令就在系统层面创建了一个进程!这个结果会打印出两个“you can see me!ps axj | head -1 #显示头部。在top命令的输出中,可以查找特定进程的PID。启动一个软件就相当于启动了一个进程。pidof原创 2023-07-31 17:35:44 · 282 阅读 · 0 评论 -
linux学习(gbd进程)[5]
【代码】linux学习(gbd进程)[5]原创 2023-07-29 16:34:57 · 333 阅读 · 0 评论 -
linux学习(umask+粘滞位+vim)[3]
当权限为"t"时,表示粘滞位被设置且可执行,当权限为"T"时,表示粘滞位被设置但不可执行。当粘滞位被设置在一个目录上时,只有目录的所有者、文件的所有者和超级用户才能够删除或重命名该目录下的文件。则表示将默认权限掩码设置为022,即新创建的文件权限为644(rw-r–r–),新创建的目录权限为755(rwxr-xr-x)。umask命令和umask函数的作用都是一样的,用于设置文件和目录的默认权限掩码,以控制文件和目录的默认权限。需要注意的是,只有目录的所有者、文件的所有者和超级用户才能够设置或移除粘滞位。原创 2023-07-16 22:43:51 · 52 阅读 · 0 评论 -
linux学习(gcc+makefile)[4]
它可以根据文件的依赖关系和规则来自动执行编译、链接和其他操作,以生成目标文件或可执行文件。Makefile中的规则可以包含多个目标和依赖,每个目标和依赖都可以是文件名或者其他规则。Makefile的用法非常灵活,可以根据具体项目的需求定义适合的规则和变量。其中,target是目标文件,prerequisites是目标所依赖的文件或操作,command是生成目标的具体操作步骤。除了规则和变量,Makefile还支持一些特殊的目标,如clean目标用于清理生成的文件,all目标用于构建整个项目等。原创 2023-07-18 20:58:26 · 33 阅读 · 0 评论 -
linux(文件+权限)[2]
但同时也带来了一定的安全风险,因为如果在用户访问文件之后,文件的权限发生了变化,用户仍然可以继续访问文件,因为系统仍然使用的是之前缓存的权限认证结果。其他用户指的是既不是文件所有者,也不是所属组成员的用户。在Linux文件权限中,"权限只认证一次"是指在用户访问一个文件时,系统只会对用户的权限进行一次认证,然后将结果缓存起来,以后对该文件的访问都不会再重新进行权限认证,而是直接使用缓存的结果。所以,为了保护文件的安全性,我们通常只需要修改文件的所有者和所属组的权限,而不需要修改其他用户的权限。原创 2023-07-14 22:14:01 · 33 阅读 · 0 评论 -
linux(常用指令)[1]
Ctrl+r]: 只能搜索并执行之前在当前终端会话中执行过的命令(如果要搜索更早的命令,或者在不同的终端会话中搜索命令历史记录,可以使用其他工具,如history命令或者终端模拟器的搜索功能)需要注意的是,管道连接的命令需要满足输入输出的格式要求,例如,前一个命令的输出必须是后一个命令的输入。同时,管道连接的命令可以根据需要进行组合和嵌套,以实现更复杂的数据处理和操作。管道(Pipe)是一种在Unix/Linux系统中用于将一个命令的输出连接到另一个命令的输入的特殊符号(|)。原创 2023-07-12 22:50:48 · 46 阅读 · 0 评论