<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CODARE &#187; Gustavo Sverzut Barbieri</title>
	<atom:link href="http://codare.net/author/barbieri/feed/" rel="self" type="application/rss+xml" />
	<link>http://codare.net</link>
	<description>Programadores, uni-vos!</description>
	<lastBuildDate>Fri, 03 Dec 2010 21:34:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>C: Alocação automática de memória com GNU asprintf()</title>
		<link>http://codare.net/2006/12/26/c-alocacao-automatica-de-memoria-com-gnu-asprintf/</link>
		<comments>http://codare.net/2006/12/26/c-alocacao-automatica-de-memoria-com-gnu-asprintf/#comments</comments>
		<pubDate>Tue, 26 Dec 2006 11:47:50 +0000</pubDate>
		<dc:creator>Gustavo Sverzut Barbieri</dc:creator>
				<category><![CDATA[C]]></category>

		<guid isPermaLink="false">http://codare.net/2006/12/26/alocacao-automatica-de-memoria-com-gnu-asprintf/</guid>
		<description><![CDATA[Palavras-chave: C, sprintf, snprintf, asprintf, formatando strings com tamanho variável Inspirado pelo post do Kojima eu resolvi postar uma dica para um problema similar: normalmente precisamos formatar algum texto usando a função sprintf(), porém ela requer um buffer pré-alocado. Bem, &#8230; <a href="http://codare.net/2006/12/26/c-alocacao-automatica-de-memoria-com-gnu-asprintf/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Palavras-chave: C, sprintf, snprintf, asprintf, formatando strings com tamanho variável</p>
<p>Inspirado pelo <a href="/2006/09/20/c-ler-linhas-de-um-arquivo-texto/" title="Ler linhas de um arquivo texto" target="_blank">post do Kojima</a> eu resolvi postar uma dica para um problema similar: normalmente precisamos formatar algum texto usando a função <code>sprintf()</code>, porém ela requer um <em>buffer</em> pré-alocado.</p>
<p>Bem, usar <code>sprintf()</code> é loucura, pois <em>buffer-overflows</em> podem acontecer. Usamos, então, <code>snprintf()</code> que limita o tamanho do resultado. Mas mesmo assim podemos ficar insatisfeitos, pois ele pode sair truncado.</p>
<p>Porém o pessoal do GNU criou a função <code>asprintf()</code> que calcula e aloca a memória necessária para que tudo caiba perfeitamente, incluindo o terminador final. O uso é bem simples:</p>
<pre>
#define _GNU_SOURCE
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

int main(int argc, char *argv[]) {
   char *s;

   if (asprintf(&amp;s, "argc=%d", argc) &gt; -1) {
      printf("s=\"%s\"\\n", s);
      free(s);
   }

   return 0;
}
</pre>
<p>Lembre-se de definir <code>_GNU_SOURCE</code>, pois esta é uma extensão ao padrão ANSI C e POSIX. Segundo a man-page, também está disponível em sistemas BSD, vale a pena conferir.</p>
]]></content:encoded>
			<wfw:commentRss>http://codare.net/2006/12/26/c-alocacao-automatica-de-memoria-com-gnu-asprintf/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Python: HTTP GET e POST com urllib</title>
		<link>http://codare.net/2006/09/20/python-http-get-e-post-com-urllib/</link>
		<comments>http://codare.net/2006/09/20/python-http-get-e-post-com-urllib/#comments</comments>
		<pubDate>Thu, 21 Sep 2006 02:38:18 +0000</pubDate>
		<dc:creator>Gustavo Sverzut Barbieri</dc:creator>
				<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://codare.wordpress.com/2006/09/20/urllib-a-internet-acessivel-no-seu-programa/</guid>
		<description><![CDATA[Palavras-chave: Python, internet, http, urllib, urlopen, urlencode O módulo urllib lhe fornece meios de acessar servidores HTTP por meios de requests GET e POST de maneira direta: Acessando o conteúdo da http://codare.net: import urllib f = urllib.urlopen("http://codare.net") contents = f.read() &#8230; <a href="http://codare.net/2006/09/20/python-http-get-e-post-com-urllib/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Palavras-chave: Python, internet, http, urllib, urlopen, urlencode</p>
<p>O módulo <a href="http://docs.python.org/lib/module-urllib.html">urllib</a> lhe fornece meios de acessar servidores HTTP por meios de requests <code>GET</code> e <code>POST</code> de maneira direta:</p>
<ul>
<li>Acessando o conteúdo da <a href="http://codare.net">http://codare.net</a>:
<pre>
import urllib

f = urllib.urlopen("http://codare.net")
contents = f.read()
f.close()
print contents
</pre>
</li>
<li>Submetendo parâmetros (<em>query</em>) usando GET:
<pre>
import urllib

params = {"documentation": 1, "forums": 1}
query = urllib.urlencode(params)
url = "http://wordpress.org/search/codare?%s" % query
f = urllib.urlopen(url)
contents = f.read()
f.close()
print contents
</pre>
</li>
<li>Submetendo parâmetros usando POST:
<pre>
import urllib

params = {"keyword": "urllib"}
query = urllib.urlencode(params)
url = "http://starship.python.net/crew/theller/pyhelp.cgi"
f = urllib.urlopen(url, query)
contents = f.read()
f.close()
print contents
</pre>
</li>
</ul>
<p>Com a página em mãos, você pode utilizar expressões regulares ou algum módulo específico para processar Sgml/HTML/XML para obter seus dados.</p>
]]></content:encoded>
			<wfw:commentRss>http://codare.net/2006/09/20/python-http-get-e-post-com-urllib/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

