有一个 2 bash 脚本文件。b.sh下面提到第一个文件。
#!/bin/bash
declare -a arr1=()
func() {
var_a=12
arr1[0]=20
arr1[1]=30
declare -a arr2=()
arr2[0]=40
arr2[1]=50
}
Run Code Online (Sandbox Code Playgroud)
a.sh下面提到了第二个文件。
#!/bin/bash
source b.sh
func
echo $var_a
echo ${arr1[1]}
echo ${arr2[1]}
Run Code Online (Sandbox Code Playgroud)
输出是
12
30
Run Code Online (Sandbox Code Playgroud)
我的疑问是,为什么本地数组变量 ( arr2) infunc在a.sh. 但是局部变量var_a是可以访问的。
我的蚂蚁脚本是,
<target name="temp">
<property name="argument" value="xyz abc"/>
<echo message=" & quot;${argument}& quot;"/>
</target>
Run Code Online (Sandbox Code Playgroud)
输出是
xyz abc
Run Code Online (Sandbox Code Playgroud)
预期产出是
"xyz abc"
Run Code Online (Sandbox Code Playgroud)
如何获得预期的输出.我试过这样"quot;${argument}"quot;,这也行不通.
注意:我antcontrib在Windows 7中使用ant 1.8.2 .
只是学习C编程,坚持我确定的Do/While循环是微不足道的.我有一段代码需要用户点击'E'退出程序:
char exitletter;
do {
printf ("Please hit E to exit the Program\n");
exitletter = getchar();
} while (exitletter !='E');
Run Code Online (Sandbox Code Playgroud)
但是,如果用户输入了错误的字符,则会打印两次"请按E退出程序".如果用户输入say abcd,则会打印消息五次.
有人可以解释一下这里发生了什么吗?
我曾在非阻塞TCP中工作,因为在非阻塞情况下,读取和写入都会失败.如果没有可用数据,TCP非阻塞读取可能会失败,如果对等端的TCP缓冲区已满,TCP写入可能会失败(我希望TCP缓冲区大小为64K).
同样,recvfrom如果没有可用数据,UDP read()可能会失败.但UDP write(sendto)的失败案例是什么?我认为在UDP写入中不会出现任何非块错误.因为TCP写入发送数据并等待来自另一方的ACK.但这不是UDP写入的情况,它只会发送并且出来并且它不会等待来自对等方的任何ACK.如果它不发送到另一方意味着它的丢包.
我对UDP非阻塞写的理解是否正确?请解释 ?
gcc编译器忽略uninitialized variable warning调试构建。这对我来说看起来很奇怪,有人可以帮助我理解这一点吗?
## Program \n#include <stdio.h>\n#include <stdarg.h>\n#include <stdlib.h>\n\nint main(int argc, char *argv[])\n{\n int i, max;\n int count;\n if (argc < 2) {\n return -1;\n }\n max = atoi(argv[1]);\n for (i = 0; i < max; i++) {\n count++;\n }\n printf("count is %d\\n", count);\n return 0;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n无警告
\n\na.c: In function \xe2\x80\x98main\xe2\x80\x99:\na.c:8:9: error: \xe2\x80\x98count\xe2\x80\x99 may be used uninitialized in this function [-Werror=maybe-uninitialized]\n int …Run Code Online (Sandbox Code Playgroud)