- 博客(6)
- 收藏
- 关注
原创 linux基于fork和exec进行I/O重定向的实验与思考
fork()的返回值并不相同,在父进程中fork()的返回值为子进程的ID,而子进程中fork()返回值为0,如果未能创建新的进程,返回一个负值。于是可根据fork()返回值来区分父子进程,并令其执行不同的命令。系统调用fork()创建一个新的进程,子进程和父进程共享代码空间,但其拥有不同的数据空间,父子进程可以看成两个同时运行的进程,在fork()后面分开运行。相同的代码竟然会有两个不同的输出,这是因为实际上是由两个不同的进程在执行该代码,而这两个进程的pid返回值不同,所以会有两个不同的输出。
2024-04-19 19:24:42
436
1
原创 关于linux 文件描述符 及 open函数 read函数 write函数的应用
FD (file descriptor): 文件描述符,但成功打开一个文件时操作系统会返回一个标识,该描述符是该打开文件的唯一标识。不同的文件标识符可能代表一个相同文件,一个文件可同时被多个进程打开,同时返回不同的文件标识符,文件标识符类似于一个指针,对文件进行的I/O操作可通过该文件的文件标识符进行操作。表示如果要创建的文件已存在,则出错,同时返回 -1,并且修改 errno 的值。表示追加,如果原来文件里面有内容,则这次写入会写在文件的最末尾。若成功打开文件, 返回一个文件描述符,否则返回-1。
2024-04-17 22:05:20
351
1
原创 最大流算法(FF,EK,Dinic)
对于求解该问题,我们先从使得从源点流入汇点的流量最大入手,对于给出的网络,我们进行可行边的找寻,这里的可行边指的是R(残量)大于0的边,如果存在一条从源点出发到达汇点的可行路径,就对该路径进行拓展,根据木桶原理,该路径流通的最大流量为该路径上最小的R。退流操作并没有凭空产生新的流量,当需要用到退流操作时,一定有一条新的可行路径流入了退流操作同样大小的流量,相当于第二次拓展产生的流和第一次拓展产生的流相互抵消,这种反悔操作让我们无需担心上文提到的顺序问题。以上文中的例子为例,在更新残量网络时添加了反边。
2024-03-31 20:36:36
1073
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人