我想使用C实现对一组数据进行排序.我想知道哪种排序是有效的,时间复杂度最好的情况.请注意,数据仅按升序排列.我想按降序排序.哪一个效率更高,效率最低,为什么?任何人都可以解释它吗?
在C中,我如何将多个参数传递给线程?
通常情况下,我是这样做的,
pthread_create(&th,NULL,dosomething,(void*)connfd);
void * dosomething(void *connfd)
{
// Doing something
}
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我只将connfd值传递给线程'th'.
有没有办法传递多个值,以便它对我有用?
还有一件事,我们可以将数组作为参数传递给线程吗?
使用realloc()时,我用valgrind检查了它,如下所示
valgrind --tool=memcheck --leak-check=yes --show-reachable=yes a.out
Run Code Online (Sandbox Code Playgroud)
而valgrind产生的错误信息是
==6402== Memcheck, a memory error detector.
==6402== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al.
==6402== Using LibVEX rev 1575, a library for dynamic binary translation.
==6402== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP.
==6402== Using valgrind-3.1.1, a dynamic binary instrumentation framework.
==6402== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al.
==6402== For more details, rerun with: -v
==6402==
dinesh
vignesh
==6402== Invalid free() / …Run Code Online (Sandbox Code Playgroud) 我正在开发一个二进制文件传输程序,客户端必须将文件上传到服务器.对于这种情况,我需要先发送文件名,然后再发送文件内容.但这对我来说不可行.
让我们看看代码:
// Client-side code to send file name
void sendFileName(
int sd, /*Socket Descriptor*/
char *fname) /*Array Containing the file name */
{
int n , byteswritten=0 , written ;
char buffer[1024];
strcpy(buffer , fname);
n=strlen(buffer);
while (byteswritten<n)
{
written=write(sd , buffer+byteswritten,(n-byteswritten));
byteswritten+=written;
}
printf("File name : %s sent to server \n",buffer);
}
Run Code Online (Sandbox Code Playgroud)
在这段代码中,我在socket上编写文件名,服务器将从socket读取名称,如下所示:
// Server-side code to read file name from client
while ((n = read((int)connfd, (fname + pointer), 1024)) > 0)
{
pointer=pointer+n;
}
Run Code Online (Sandbox Code Playgroud)
好吧,问题是我必须在发送文件名后关闭客户端的写端,该文件名将是服务器端代码的FIN段,以停止从服务器读取.
如果我关闭读取结束,如:
shutdown(sd,SHUT_WR); …Run Code Online (Sandbox Code Playgroud) 我正在远程机器上导航基于Java的CLI菜单,期望在bash脚本中,我试图从输出中提取一些内容而不离开期望会话.
我的脚本中的Expect命令是:
expect -c "
spawn ssh user@host
expect \"#\"
send \"java cli menu command here\r\"
expect \"java cli prompt\"
send \"java menu command\"
"
###I want to extract a specific string from the above output###
Run Code Online (Sandbox Code Playgroud)
期望输出是:
Id Name
-------------------
abcd 12 John Smith
Run Code Online (Sandbox Code Playgroud)
我想abcd 12从上面的输出中提取另一个期望变量,以便在expect脚本中进一步使用.所以这是第3行,第一个字段是使用双空格分隔符.awk等价物将是:awk -F ' ' 'NR==3 {$1}'
最大的问题是,我正在使用Expect导航的环境是,如上所述,基于Java CLI的菜单,所以我不能只使用awk或其他任何可从bash shell获得的东西.
从Java菜单中退出,处理输出然后再次进入不是一个选项,因为登录过程持续15秒,所以我需要留在内部并使用expect内部命令从输出中提取我需要的内容.
我正在探索Semantic UI,我在一个表单中遇到了一个按钮点击事件,我目睹了一个奇怪的行为.
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<title>Semantic UI CDN</title>
<link rel="stylesheet" href="semantic.css" />
<script src="jquery.min.js"></script>
<script src="semantic.js"></script>
</head>
<body style="margin:1em;">
<!-- Your Semantic UI Code -->
<br/><br/>
<h1 class="ui center aligned icon header">
First Form
</h1>
<form class="ui form" style="">
<div class="inline fields" id="ir_num_row_div">
<div class="three wide field required">
<label>Name</label>
</div>
<div class="five wide field">
<input type="text" id="name" placeholder="Your good name goes here..">
</div>
</div>
<div class="inline fields">
<div class="three wide field required">
<label>Place</label> …Run Code Online (Sandbox Code Playgroud) 可以说我有这样的字符串,
String sample = "This is a sample string with more than two spaces in a string ";
Run Code Online (Sandbox Code Playgroud)
现在我需要做的是使字符串在每个单词之间只有一个空格.提前致谢.
我正在编写一个脚本来读取文件并替换一些包含无法识别的字符的字符
"^H^H^H^H^H^H^H^H^H"
Run Code Online (Sandbox Code Playgroud)
实际上,这个文件是通过重定向telnet会话的控制台输出生成的.我想删除这个角色.我必须从文件中删除"--More ---".
我试着用它来替换它们
set fileID [open "bar" r]
set temp [open "temp.txt" w+]
while {[eof $fileID] != 1} {
gets $fileID lineInfo
regsub -all "More" $lineInfo "" lineInfo
regsub -all "--More--" $lineInfo "" lineInfo #This is not working
puts $temp $lineInfo
}
Run Code Online (Sandbox Code Playgroud)
我可以删除"更多",但我无法删除" - 更多 - ".任何人都能解释一下吗?
我也尝试过
regsub -all "^H^H^H^H^H^H^H^H^H" $lineInfo "" lineInfo #This is also not working
Run Code Online (Sandbox Code Playgroud)
这也行不通.
提前致谢.
我只是检查一些表达式的正则表达式,在方法中,我一次又一次地重用该变量
Pattern pattern = Pattern.compile("([^test])");
Matcher matcher = pattern.matcher("SS");
if (matcher.find()) {
return false;
}
//Making it 'null' before re-use
pattern = null;
matcher = null;
pattern = Pattern.compile("([newtest]){4,}");
matcher = pattern.matcher("test");
if (matcher.find()) {
return false;
}
pattern = null;
matcher = null;
pattern = Pattern.compile("[stack]{2,}");
matcher = pattern.matcher("overflow");
if (matcher.find()) {
return false;
}
Run Code Online (Sandbox Code Playgroud)
null在设置其他新值之前,将变量设置为好吗?
它有意义吗?
注意:它可能是非标准的符号,再次使用相同的变量,但我只是想知道在重新赋值之前是否可以使变量无效?