我只想使用vim在文本文件中缩进偶数行。在vim手册中,提到了缩进技术。但这对行范围或光标所在的特定行都有效。我需要一个命令来对齐整个文件。这在vim中可能吗?请有人对此提出建议。
我需要调查我的 C 项目中的内存泄漏。但在此之前,我只是编写了一个示例程序并交叉编译到ARM-v8-a 64bit OpenWRT
linux平台。通过这个程序,我试图理解 Valgrind 泄漏报告。不幸的是,在这次 valgrind 运行中,没有看到任何泄漏,并期望 memcheck 工具报告 50 字节的泄漏摘要。
Valgrind 工具优化:是,-Os(OpenWRT) and -O2(Valgrind Makefile)
二进制优化:未
使用 libc 标准:MUSL
OpenWRT ARM 64 位
Why valgrind is not able to intercept malloc calls eventhough binary executes malloc calls?
示例代码:
char *ptr = NULL;
printf("Doing memory alloc\n");
ptr = malloc(50);
if (!ptr) {
printf("Malloc failure\n");
return -1;
}
printf("Malloc returned : %p\n", (void *)ptr);
memset(ptr, 0, 50);
strcpy(ptr, "Valgrind leak Analysis!!!\n");
printf("%s\n", …
Run Code Online (Sandbox Code Playgroud) 在Pthreads手册页中,提到了
调用getpid(2)在每个线程中返回不同的值
在LinuxThreads部分中。
我创建了两个线程,并在其中打印了PID。但是,两者的PID都是相同的。
int main ()
{
//pid_t pid;
pthread_t tid[2];
{
printf("In main, PID : %d, PPID : %d\n", getpid(), getppid());
pthread_create(&(tid[0]), NULL, &(f),NULL);
pthread_create(&(tid[1]), NULL, &(g),NULL);
pthread_join(tid[0], NULL);
pthread_join(tid[1], NULL);
}
return 0;
}
void *g()
{
printf("My PID in G : %d, PPID : %d\n", getpid(), getppid());
}
void* f()
{
printf("My PID in F : %d, PPID : %d\n", getpid(), getppid());
}
Run Code Online (Sandbox Code Playgroud)
以下是我得到的输出,
总的来说,PID:5219,PPID:5214
我的PID在F中:5219,PPID:5214
我的PID在G中:5219,PPID:5214
我需要知道我是否在这里误解了什么。
我有一个特定于项目的命令,它以以下形式生成输出:
Parameter1='value1' Parameter2='Value2' ... #变量的单引号值。
但我想明确分配该值并需要打印必须显示相应值的参数。
这里xtc_cmd get是项目特定的 cmd
root@renway:~# FOO=`xtc_cmd get lan_ifname lan_ipaddr lan_netmask`
root@renway:~#
root@renway:~# echo $FOO
SYSCFG_lan_ifname='br1' SYSCFG_lan_ipaddr='10.0.0.1' SYSCFG_lan_netmask='255.255.255.0'
root@renway:~#
root@renway:~# echo $SYSCFG_lan_ifname
root@renway:~# echo $SYSCFG_lan_ipaddr
root@renway:~# echo $SYSCFG_lan_netmask
Run Code Online (Sandbox Code Playgroud)
但是,在变量打印它们的值之后,我尝试了“ eval $FOO ”。由于安全原因,我想跳过'eval'。
分享脚本执行的输出:
root@renway:~# /tmp/test.sh
++ xtc_cmd get lan_ifname lan_ipaddr lan_netmask
+ FOO='SYSCFG_lan_ifname='\''br1'\''
SYSCFG_lan_ipaddr='\''10.0.0.1'\''
SYSCFG_lan_netmask='\''255.255.255.0'\'''
+ echo 'SYSCFG_lan_ifname='\''br1'\''' 'SYSCFG_lan_ipaddr='\''10.0.0.1'\''' 'SYSCFG_lan_netmask='\''255.255.255.0'\'''
SYSCFG_lan_ifname='br1' SYSCFG_lan_ipaddr='10.0.0.1' SYSCFG_lan_netmask='255.255.255.0'
Run Code Online (Sandbox Code Playgroud)
如何实际分配值并打印这些变量。
输入感兴趣的字符串
FOO='SYSCFG_lan_ipaddr='\''10.0.0.1'\'' SYSCFG_sysdate='\'''\''$(date>> /tmp/date.txt)0'\'''\'' SYSCFG_lan_pd_interfaces='\''brlan0 brlan19 brlan20'\'''
Run Code Online (Sandbox Code Playgroud)
预期输出:
foo_SYSCFG_lan_ipaddr=10.0.0.1
foo_SYSCFG_sysdate='$(date>> /tmp/date.txt)0' #single quoted value
foo_SYSCFG_lan_pd_interfaces=brlan0 brlan19 brlan20 #whitespace separated string …
Run Code Online (Sandbox Code Playgroud)