Linux C系统编程
LinuxC系统编程
Salted_Sun
这个作者很懒,什么都没留下…
展开
-
【Linux C实现】删除目录下的ELF文件
**重点: **realpath() 将目录路径转换为绝对路径, 借此将目录路径规范为末尾无"/"glob()检索指定模式的文件. 通过flag为目录路径加上"/", 从而实现和普通文件区分basename() 获取文件名部分,从而实现比较不同形式的同一路径下的文件remove() 删除文件或目录ELF文件的第2-4个字节是"ELF"===#include <linux/limits.h>#include <stdio.h>#include <limits原创 2022-03-19 20:40:48 · 398 阅读 · 0 评论 -
Ubuntu下在终端显示git分支
vim .bashrc#修改这段为:if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W$(git_branch)\[\033[00m\]\$ ' #PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]原创 2021-10-13 16:48:12 · 2021 阅读 · 1 评论 -
fork出两进程读同一fd
#include <stdio.h>#include <stdlib.h>#include <fcntl.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/wait.h>#include <unistd.h>int main(int argc, char *argv[]){ int fd = open("./abc", O_RDON原创 2021-10-08 11:24:02 · 191 阅读 · 0 评论 -
getpwuid:根据uid获取passwd中相应的一行
#include <stdio.h>#include <stdlib.h>#include <error.h>#include <string.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <pwd.h>int main(int argc, char **argv){ if (argc原创 2021-10-07 21:15:04 · 128 阅读 · 0 评论 -
mydu 实现du命令
// 实现du命令// 统计文件大小/目录下所有文件大小总和#include <stdio.h>#include <stdlib.h>#include <string.h>#include <error.h>#include <sys/stat.h>#include <sys/types.h>#include <fcntl.h>#include <unistd.h>#include <原创 2021-10-07 21:12:27 · 330 阅读 · 0 评论 -
unlink创建匿名临时文件
#include <stdio.h>#include <stdlib.h>#include <error.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <string.h>// 用unlink创建一个匿名临时文件int main(int argc, char原创 2021-10-07 21:09:49 · 137 阅读 · 0 评论 -
stat判断文件类型
#include <unistd.h>#include <stdio.h>#include <stdlib.h>#include <error.h>#include <sys/stat.h>#include <sys/types.h>#include <fcntl.h>int main(int argc, char *argv[]){ struct stat st; if (stat(arg原创 2021-10-07 21:08:02 · 177 阅读 · 0 评论 -
伪造大文件
#include <stdlib.h>#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>int main(int argc, char *argv[]){ if (argc < 2) { fprintf(stderr, "usage:\n原创 2021-10-07 21:07:28 · 99 阅读 · 0 评论 -
截断的例子
#include <stdio.h>#include <stdlib.h>#include <error.h>#include <unistd.h>int main(int argc, char *argv[]){ if (argc < 2) { fprintf(stderr, "usage %s\n", argv[0]); exit(1); } FILE *rf = fope原创 2021-10-07 20:47:45 · 147 阅读 · 0 评论 -
dup复制文件描述符
#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdlib.h>int main(int argc, char *argv[]){ if (argc < 2) { fprintf(stderr, "usage %s"原创 2021-10-07 20:42:50 · 51 阅读 · 0 评论 -
open()/close()
#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#define BUFSIZE 1024int main(int argc, char **argv){ if (argc < 3) { fprint原创 2021-10-07 20:36:37 · 70 阅读 · 0 评论