3 ポイント 投稿者 GN⁺ 2024-01-30 | 1件のコメント | WhatsAppで共有

--libcurl の使い方

  • libcurl の使用を推奨: ユーザーには、まず curl コマンドラインツールを使って望む転送を試し、だいたい期待どおりに動作したら、コマンドラインに --libcurl [ファイル名] オプションを追加して再実行することが推奨される。
  • コード生成: --libcurl コマンドラインオプションは、指定されたファイル名で C プログラムを生成する。この C プログラムは libcurl を使って、curl コマンドラインツールが実行した転送を実行する。
  • 例外と違い: 常に 100% 一致するわけではないが、使いたい libcurl オプションや追加引数について優れたヒントを与えてくれる。

サンプルコード

  • 実行例: curl http://example.com --libcurl example.c コマンドを実行すると、現在のディレクトリに example.c ファイルが生成される。
  • 生成されたコード: 生成されたコードには、curl_easy_setopt() を使ったさまざまなオプション設定が含まれており、一部のオプションはソースとして簡単に生成できないため、ユーザーが自分で実装するか使用しない場合もある。

GN⁺の意見

  • libcurl の有用性: この機能は、開発者がコマンドラインで動作する curl コマンドを C プログラムへ簡単に変換できるようにし、libcurl を使うアプリケーション開発を加速させる。
  • コード生成の利点: 自動生成されたコードは、開発者が libcurl API をより速く理解して適用するのに役立つ。
  • 学習ツールとしての価値: 初級ソフトウェアエンジニアにとって、libcurl オプションやネットワークプログラミングの実際の適用例を示す優れた学習資料になり得る。

1件のコメント

 
GN⁺ 2024-01-30
Hacker News の意見
  • ブラウザのネットワークタブで関心のあるリクエストを見つけて「curlとしてコピー」するパターンは便利。これにより curl コマンドを生成し、そのコマンドを使う言語のリクエストコードへ変換できるサイト(curlconverter.com)を活用できる。curl は他の言語へ翻訳できる「中間表現」のような役割を果たす。
  • コマンドラインインターフェースに、プログラムのソースコードを出力するフラグがあるのはとても素晴らしい機能。まるで車のボンネットを開けて中を見せるようなもので、動作方式をよりよく理解し、必要に合わせて変更できるようにしてくれる。ユーザーが望むとおりに調整したり追加したりできるので、ユーザーフレンドリー。
  • Microsoft Office の Visual Basic マクロが成功した理由の一つは、こうした機能にある。Word、Excel などで作業を行った後、生成されたマクロをコードとしてユーザーの必要に合わせてカスタマイズできる。これはシンプルでありながら強力な概念で、curl にもそれが見られる。
  • curl をコンパイルするには、libcurl にリンクするよう指示する必要がある。たとえば gcc では -lcurl オプションを使う。これにより IP アドレスを出力し、ip_fetcher.c ファイルを生成でき、gcc でコンパイルした後は実行ファイルを通じて IP アドレスを取得できる。
  • Hurl は libcurl を使うオープンソースの CLI で、HTTP リクエストのテストにプレーンテキストを使う。libcurl の安定性と最高レベルの機能(HTTP/3 を含む)を活用しつつ、リクエストの連結、レスポンスからのデータのキャプチャと受け渡し、レスポンステスト(JSONPath、XPath など)といった機能を追加している。REST/SOAP/GraphQL API へのリクエストのための構文上の利便性を提供するが、核心は libcurl。Verbose オプションを使えば curl コマンドを grep できる。
  • ffmpeg でもこのような機能が使えるとよいのにと思う。
  • Daniel Stenberg は細部や開発者/ユーザー体験に非常に気を配っており、その細やかな心配りには驚かされると評価されている。
  • Daniel Stenberg 自身が curl のコマンドラインオプションの大半を説明する 3 時間の動画で、このオプションにも言及している。
  • 投稿タイトルにはハイフン 2 つ(--)を使うべきで、em-dash とハイフン(—-)の組み合わせは正しくない。
  • ChatGPT の登場により、今では curl 実行ファイルに半分できかけた quine を含める必要がなくなり、この機能は時代遅れになったという、AI 熱烈支持者の熱のこもった意見が示されている。