有点相关,但它仍然不完全回答我的问题 我有一个C项目,我想枚举所有未被引用的函数(包括非静态,所以设置编译器选项werror =未使用的函数只能部分工作…),以识别和清理代码库。 我认为的一种方法是枚举项目中的所有函数,然后使脚本遍历每个函数,看看它是否通过cscope调用…但我不知道如何获得所有的函数的列表formsfunction摆在首位。 上面的链接有一个解决scheme,对我来说是失败的。 欢迎任何其他想法。
我正在使用Linux random()函数在CentOS 5.2中产生随机消息。 我想在3次随机调用后重置种子。 换句话说,我希望在第一次呼叫和第四次呼叫中有相同的输出。 有没有办法将rand()函数设置为初始状态? 或者可以知道我可以做的其他function吗?
我在阅读http://beej.us/guide/bgnet/output/html/singlepage/bgnet.html#syscalls时,发现getaddrinfo()列在系统调用或Bust章节下。 我想检查一下在我的Debian 8 Linux系统上是否真的是一个系统调用。 但是我找不到任何系统调用的证据。 例如,我写了一个程序foo.c #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netdb.h> int main() { struct addrinfo *ai; int ret; ret = getaddrinfo("localhost", "http", NULL, &ai); printf("ret: %d\n", ret); return 0; } 当我用strace编译和运行这个程序时,我看不到getaddrinfo()任何调用。 $ gcc foo.c && strace ./a.out execve("./a.out", ["./a.out"], [/* 40 vars */]) = 0 brk(0) = 0x1190000 access("/etc/ld.so.nohwcap", F_OK) = […]
大师,我有2个与Linuxfunction的问题: 睡觉 据我所知,睡眠中的任何信号都会被其发送过程中断。 这是正确的吗? 还是睡觉 如果我在这个过程中创build了多个线程,并且在线程中插入了睡眠函数,那么如果我将信号发送到进程中,睡眠是否会中断? 顺便说一句,如果我发送一个信号的进程,当进程得到的信号,将它发送到其子线程? 感谢您的答案
我正在为我的程序工作,它应该像这样工作: 用户input标题 用户input作者 系统然后在名为BookDB.txt的文本文件中检查用户的标题和作者input 如果文本文件中已有logging,系统会提示错误 否则将继续用户input价格,可用数量和销售数量。 书将被添加 我尝试玩grep,但无济于事。 以下是我对这个特定function的代码。 function fnAddBook() { echo "Title: " read inputTitle echo "Author: " read inputAuthor if grep -Fq "$inputTitle" BookDB.txt; then if grep -Fq "$inputAuthor" BookDB.txt; then echo "Error!" fi else echo "Price: " read inputPrice echo "$inputTitle:$inputAuthor:$inputPrice" >> BookDB.txt echo "New Book successfully added!" fi } 内容的BookDB.txt格式的内容| […]
有没有什么办法可以通过编程获得C程序运行的总时间,以及在特定函数中花费的时间? 我需要在代码中这样做,因为我想使用这两个值作为另一个函数的参数。 由于我在Linux上,我可以使用gprof或perf来做到这一点吗?
通常在UNIX系统上,可以通过将STDIN和/或STDERRredirect到文件或/ dev / null来禁止命令输出。 但是,如果您需要通过STDIN在bash脚本中将内容传递给pipe道命令? 下面的例子应该明确是什么意思。 这仅仅是一个例子,我不是在寻找一个特定的解决scheme,而是通常的这种情况。 令人遗憾的是,在很多情况下,您希望在脚本中压缩输出,但是当命令没有切换来以其他方式提交信息时,需要通过STDIN传递内容。 我的“问题”是我编写了一个函数来执行具有适当error handling的命令,并且我想将执行的命令产生的所有输出redirect到日志文件。 示例问题: [18:25:35] [V] root@vbox:~# echo 'test' |read -p 'Test Output' TMP &>/dev/null [18:25:36] [V] root@vbox:~# echo $TMP [18:25:36] [V] root@vbox:~# 任何想法如何解决我的问题?
在我的Linux程序中,我需要一个接收地址addr的函数,并检查放在addr的callq指令是否正在调用从共享库加载的特定函数func 。 我的意思是,我需要检查在addr是否有像callq func@PLT这样的东西。 那么,在Linux上,如何从callq func@PLT指令到达函数func的真实地址?
我想创build256个function,做同样的事情 基本上我想要一个能够被称为不区分大小写的函数。 例如:我想让applepie()能够不区分大小写: applepie(){ for B in "$@"; do another_function_in_my_bash_profile $B blah blah # more stuff … done } 最直接的方法是用caps中的一些字母来声明另外的255个函数: Applepie(){ for B in "$@"; do another_function_in_my_bash_profile $B blah blah # more stuff … done } 和 aPplepie(){ for B in "$@"; do another_function_in_my_bash_profile $B blah blah # more stuff … done } … 一路去 […]
我使用名为ThousandsDotting的别名添加点. 每3个数字(经典点数千),所以100000成为100.000 。 它在shell中工作正常,但不是在一个函数中 。 示例文件example.sh : #!/bin/bash function test() { echo "100000" | ThousandsDotting } alias ThousandsDotting="perl -pe 's/(\d{1,3})(?=(?:\d{3}){1,5}\b)/\1./g'" test 如果我运行它,这是我得到的: $ ./example.sh example.sh: line 3: ThousandsDotting: command not found. 什么是正确的方式pipe道 (或使用它没有pipe道,无论)标准输出数据到这个perl命令在我的Bash shell脚本的函数?