小编MOH*_*MED的帖子

如何使用sed仅删除文件中第一次出现的行

我有以下文件

titi
tata
toto
tata
Run Code Online (Sandbox Code Playgroud)

如果我执行

sed -i "/tat/d" file.txt
Run Code Online (Sandbox Code Playgroud)

它将删除包含的所有行tat.该命令返回:

titi
toto
Run Code Online (Sandbox Code Playgroud)

但我想只删除包含tat以下内容的文件中出现的第一行:

titi
toto
tata
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

linux bash shell sed

12
推荐指数
2
解决办法
9766
查看次数

在共享库的构建选项中添加"-rpath,/ usr/lib"会导致段错误

我有一个你好的世界计划.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("hello world! \n");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

-lmicroxml在链接阶段添加了程序的构建,以便链接到库libmicroxml.so

当我启动程序时,我遇到了分段错误.分段故障与负载有关libmicroxml.so.在我的helleo世界程序执行之后:

 strace ./test
execve("./test", ["./test"], [/* 11 vars */]) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|0x4000000, -1, 0) = 0x777de000
stat("/etc/ld.so.cache", 0x7f944760)    = -1 ENOENT (No such file or directory)
open("/lib/libmicroxml.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libmicroxml.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libmicroxml.so.1", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=4129, ...}) = 0
old_mmap(NULL, …
Run Code Online (Sandbox Code Playgroud)

c linux gcc shared-libraries strace

10
推荐指数
1
解决办法
1038
查看次数

scapy中的sniff函数过滤器无法正常工作

看来,filtersniff功能不能正常工作.

我用以下过滤器执行嗅探

a=sniff(count=1,filter="tcp and host 192.168.10.55 and port 14010")
Run Code Online (Sandbox Code Playgroud)

但是sniff有时候抓住这样的UDP包:

>>> a=sniff(count=1,filter="tcp and host 192.168.10.55 and port 14010")
>>> a
<Sniffed: TCP:0 UDP:1 ICMP:0 Other:0>
Run Code Online (Sandbox Code Playgroud)

有时候sniff捕获带有错误端口的TCP数据包:

>>> a=sniff(count=1,filter="tcp and host 192.168.10.55 and port 14010")
>>> a
<Sniffed: TCP:1 UDP:0 ICMP:0 Other:0>
>>> a[0]
<Ether  dst=00:26:55:cb:3b:10 src=00:22:64:55:c8:89 type=0x800 |<IP  version=4L ihl=5L tos=0x10 len=92 id=8683 flags=DF frag=0L ttl=64 proto=tcp chksum=0x9484 src=192.168.1.71 dst=192.168.1.133 options=[] |<TCP  sport=ssh dport=1874 seq=350107599 ack=2484345720 dataofs=5L reserved=0L flags=PA window=254 …
Run Code Online (Sandbox Code Playgroud)

python linux networking tcp scapy

10
推荐指数
1
解决办法
7665
查看次数

如何杀死叉子?

我有以下代码创建一个子for​​k.我想在孩子完成执行之前杀死孩子.怎么做?

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int i;

main (int ac, char **av)
{
  int pid;

  i = 1;

  if ((pid = fork()) == 0) {
    /* child */
    while (1) {
      printf ("I m child\n");
      sleep (1);
    }
  }
  else {
    /* Error */
    perror ("fork");
    exit (1);
  }
  sleep (10)

   // TODO here: how to add code to kill child??

}
Run Code Online (Sandbox Code Playgroud)

c fork

9
推荐指数
3
解决办法
5万
查看次数

如何使用libcurl开发http服务器

我正在使用libcurl.它非常好(作为客户端),我曾经打开一个服务器的套接字,然后发送我的HTTP数据包.

我想知道是否可以使用libcurl开发http服务器.http服务器将侦听给定端口,然后当它收到http数据包时,http服务器返回需要摘要身份验证.

我在stackoverflow和curl网站上做了一些研究,但没有结果.

用libcurl可以做到吗?怎么做?

c curl libcurl

9
推荐指数
1
解决办法
1万
查看次数

如何释放json_object?

我有以下代码

#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
#include <string.h>

#include <json/json.h>

int main(int argc, char **argv)
{
      json_object *new_obj;
      char buf[] = "{ \"foo\": \"bar\", \"foo2\": \"bar2\", \"foo3\": \"bar3\" }";
      new_obj = json_tokener_parse(buf);
      .....
      json_object_put(new_obj);
}
Run Code Online (Sandbox Code Playgroud)

是否json_object_put(new_obj)释放所有内存相关new_obj

c json libjson

9
推荐指数
1
解决办法
9708
查看次数

使用CppUnit测试静态函数

我的项目包含C文件.在某些文件中,我将函数定义为static.

我在单元测试中使用CppUnit,我想测试这些静态函数.我知道不允许从文件外部(它定义的地方)调用函数.有没有解决方案来避免这个问题,以便从我的C++测试文件中调用这些静态函数?

c c++ unit-testing cppunit

9
推荐指数
1
解决办法
1049
查看次数

指针比较">"与数组对象的第一个元素之前的一个

根据该主题,允许将指针与数组对象的最后一个元素之一进行比较.

根据@jalf注释,禁止在数组对象的第一个元素之前将指针与一个进行比较.

例1

int array[10];
int *ptr;
for(ptr=&array[9]; ptr>(array-1); ptr--) {...}
Run Code Online (Sandbox Code Playgroud)

例题

int array[10];
int *ptr;
for(ptr=&array[9]; ptr>=(array); ptr--) {...}
Run Code Online (Sandbox Code Playgroud)

1)是否禁止example1example2

2)C标准是否有证据表明禁止在数组对象的第一个元素之前比较指针?

c c++ comparison pointers

9
推荐指数
1
解决办法
993
查看次数

代码中的SwitchPreference和CheckBoxPreference

我现在正在为我的应用创建首选项页面

在API-14之后,可以使用switchpreference.我想用它来取代API14 +设备上的checkboxpreference

它易于使用res/xmlres/xml-14获得正确的xml资源

但是,在编码部分,根据API切换偏好并不方便.

public class SettingActivity extends PreferenceActivity {
    private CheckBoxPreference enable;
    private SwitchPreference enablev14;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        addPreferencesFromResource(R.xml.setting);
        if (Build.VERSION.SDK_INT < 14)
            enable = (CheckBoxPreference) findPreference(key_enable);
        else
            enablev14 = (SwitchPreference) findPreference(key_enable);
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

现在我的方法是使用if子句检查Build.VERSION并获取相应的对象来处理它.但是管理代码非常不方便.有人有更聪明的方法吗?

java xml android android-preferences

9
推荐指数
2
解决办法
2万
查看次数

了解Pthreads

我在高级Linux编程中遇到了一个概念.这是一个链接:参考4.5 GNU/Linux线程实现.

我很清楚作者所说的概念,但我对他为线程打印processID所解释的程序感到困惑.

这是代码

#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
void* thread_function (void* arg)
{
    fprintf (stderr, "child thread pid is %d\n", (int) getpid ());
    /* Spin forever. */
    while (1);
    return NULL; 
}

int main ()
{
    pthread_t thread;
    fprintf (stderr, "main thread pid is %d\n", (int) getpid ());
    pthread_create (&thread, NULL, &thread_function, NULL);
    /* Spin forever. */
    while (1);
    return 0;
} 
Run Code Online (Sandbox Code Playgroud)

根据作者的上述代码的输出是

% cc thread-pid.c -o thread-pid -lpthread
% ./thread-pid & …
Run Code Online (Sandbox Code Playgroud)

c linux multithreading pthreads

9
推荐指数
2
解决办法
3544
查看次数