在我的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什么?后者已弃用,仅应使用前者吗?为什么呢
在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) 当我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
我使用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)变色。
如何修改我的正则表达式,以便两个字符串都匹配并被着色?
我正在解析一个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?
我需要在 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?