小编Mar*_*ter的帖子

正确使用getaddrinfo和getnameinfo

在我的C程序中,我getaddrinfo用来从主机名获取IP地址,并getnameinfo从IP地址获取主机名。这两个功能是互补的。我读到man getaddrinfo我必须使用freeaddrinfo()函数释放为动态分配的链表分配的内存res。因此,我的代码如下所示:

if ((err = getaddrinfo(argv[1], NULL, &hints, &res)) != 0) {
  printf("error %d\n", err);
  return 1;
}

addr.s_addr = ((struct sockaddr_in *)(res->ai_addr))->sin_addr.s_addr;
printf("%s\n", inet_ntoa(addr));

freeaddrinfo(res);
Run Code Online (Sandbox Code Playgroud)

但是因为getnameinfo我看不到任何类似的功能,即freenameinfo

为什么在使用时我需要释放getaddrinfo而不是释放getnameinfo。为什么我需要完全腾出空间?较早时,我gethostbyaddr不需要释放内存。为什么这不同。

getaddrinfoover 的优点是gethostbyaddr什么?后者已弃用,仅应使用前者吗?为什么呢

c ip tcp

3
推荐指数
1
解决办法
1922
查看次数

在Python中排序对象列表

在Python中,我xml使用此模块将文件解析为字典.我的代码的核心很简单:

configdict = ConvertXmlToDict('tasks.xml')

for task in configdict['osmo_tasks']['tasks_entries']['entry']:
    print task['id'], task['due_date'], task['summary']
Run Code Online (Sandbox Code Playgroud)

上面的代码将xml文件解析为字典,然后迭代tasks并打印它们.显然,它将按照从它们读取的相同顺序打印它们,xml文件:

1 736366 summary
2 735444 another summary
5 735796 blah
Run Code Online (Sandbox Code Playgroud)

如何打印按照排序的行task['due_date']

这是一个示例xml文件:

<?xml version="1.0" encoding="utf-8"?>
<osmo_tasks version="000212">
  <category_entries/>
  <tasks_entries>

    <entry>
      <id>1</id>
      <status>1</status>
      <due_date>736366</due_date>
      <due_time>53100</due_time>
      <summary>summary</summary>
    </entry>

    <entry>
      <id>2</id>
      <status>1</status>
      <due_date>735444</due_date>
      <due_time>55800</due_time>
      <summary>another summary</summary>
    </entry>

    <entry>
      <id>5</id>
      <status>0</status>
      <due_date>735796</due_date>
      <due_time>55800</due_time>
      <summary>blah</summary>
    </entry>

  </tasks_entries>
</osmo_tasks>
Run Code Online (Sandbox Code Playgroud)

python sorting python-2.7

2
推荐指数
1
解决办法
274
查看次数

ipython:在启动时禁用版权和帮助

当我ipython从终端开始时,我得到以下输出:

Python 2.7.3 (default, Mar 13 2014, 11:03:55) 
Type "copyright", "credits" or "license" for more information.

IPython 1.2.1 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: 
Run Code Online (Sandbox Code Playgroud)

是否有可能压制版权和帮助信息?看过它一千次后,我开始发现它有点多余了.

理想情况下,我想In [1]:在我开始时只看到提示ipython.

我在用 ipython 1.2.1

ipython

2
推荐指数
1
解决办法
109
查看次数

使用grep -P为字符串着色

我使用grep-P(Perl的正则表达式)上色字符串:

echo aaa bbb ccc ddd eee | grep --color=always -P "^[^#]*\K(bbb|ccc)|^"
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,我想为字符串bbb和着色ccc。但是,grep仅使最后一个(ccc)变色。

如何修改我的正则表达式,以便两个字符串都匹配并被着色?

regex perl grep colors

2
推荐指数
1
解决办法
286
查看次数

用Python转换时间

我正在解析一个xml文件python,我需要将以下日期和时间格式转换为人性化的:

  <due_date>735444</due_date>
  <due_time>55800</due_time>
Run Code Online (Sandbox Code Playgroud)

日期格式似乎是从第0年开始的天数,时间是自午夜以来的秒数.我怎么能把它转换成某种标准格式,比如2014-07-30 15:30:00

python datetime

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

/bin/dash:错误替换

我需要在 shell 脚本 ( ) 中进行字符串操作/bin/dash

#!/bin/sh

PORT="-p7777"
echo $PORT
echo ${PORT/p/P}
Run Code Online (Sandbox Code Playgroud)

最后一个回显失败并显示Bad substitution。当我将 shell 更改为 bash 时,它可以工作:

#!/bin/bash

PORT="-p7777"
echo $PORT
echo ${PORT/p/P}
Run Code Online (Sandbox Code Playgroud)

如何实现 中的字符串替换dash

string bash sh parameter-expansion dash-shell

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

标签 统计

python ×2

bash ×1

c ×1

colors ×1

dash-shell ×1

datetime ×1

grep ×1

ip ×1

ipython ×1

parameter-expansion ×1

perl ×1

python-2.7 ×1

regex ×1

sh ×1

sorting ×1

string ×1

tcp ×1