You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
会社の中でシェルスクリプトについての話をすることにしたので、このエントリはそのためのものです。 個人的な好みとかもいろいろ入ってしまっているので、そのあたりは取捨選択してください。 なぜ今シェルスクリプトを学ぶのか 公開されているSRE本をマルっとPDF化する SpotBugsのViolationレポートをMerge Requestのコメント投稿する ぼくの互換性についての考え方 何で書くか シェルスクリプトをうまく書くには ShellCheckを使う バッドパターンとその修正 line-by-lineの処理が多い lsを使う ls /directory | grep mystring ls | grep -v 'log$' lsの結果をループさせる 良いシェルスクリプトを書くためのTIPS set -euする 文字列は基本的にクオートする 局所変数にはlocalを使う 定数は読み取り専用
ソフトウェア開発において「ファイルの読み書き」は使用頻度の高い操作であり、速度の向上はソフトウェア全体のパフォーマンスに大きく影響します。そんなファイルの読み書き操作を行う際に「mmapを使った方が通常のシステムコールよりも高速にファイルを操作できる理由」について、ブリティッシュコロンビア大学の准教授であるAlexandra Fedorova氏が説明しています。 Why mmap is faster than system calls | by Alexandra (Sasha) Fedorova | Medium https://sasha-f.medium.com/why-mmap-is-faster-than-system-calls-24718e75ab37 OS上でユーザーがプログラムを実行する際、プログラムは「ユーザー空間」と「カーネル空間」と呼ばれる2種類の領域を利用します。
はじめに 本記事は電子書籍版もあります。 linuxカーネルはC言語のマクロを駆使して書かれています。それらのうち、凝ったマクロになじみの無い人には初見では意図がわからない&わかってみれば面白いであろうものをいくつか紹介いたします。対象読者は、C言語のユーザだけれども、マクロは定数定義くらいにしか使わないというライトなマクロユーザです。 マクロを使用する場所に依存するエラーを防ぐ 次のマクロは、二つの引き数の値を置換するだけの単純なものです。 #define swap(a, b) \ do { typeof(a) __tmp = (a); (a) = (b); (b) = __tmp; } while (0) 注目すべきはマクロの定義全体を囲んでいるdo { ... } while (0)という表記です。初見の人には何のことかわからないと思います。考えられる最も単純な定義から遡って、なぜこ
(訳注:2016/3/2、いただいた翻訳フィードバックをもとに記事を修正いたしました。) (訳注:著者のMattより、「本文中で明言はしていないが、この記事の内容はx86-64 Unix/Linux/POSIXでアプリケーションをプログラミングする場合にフォーカスしている。他のプログラミング領域では、対象とするシステムに応じた(例: 8-bitの組み込みシステム、10年前のコンパイラ、多くの異なるCPUアーキテクチャで動く必要のあるアプリケーション、Win/Linuxでのビルド互換性など)特有のアドバイスが必要」との補足を頂いております。) 以下の文章は2015年の始めに書いたドラフトで、今まで公開していませんでした。私のドラフト用フォルダの中で誰の目も引かなかったため、大部分が書いた時のままです。公開するにあたり、単純に2015年を2016年に変更しました。 必要な修正、改善、苦情があり
UNIX でプロセスを一時的にスリープさせるには sleep(3) が使えます。sleep() は引数に秒単位でしか時間を指定できないので、より短い時間を指定したい場合は usleep(3) (マイクロ秒) や nanosleep(2) (ナノ秒) を使うことになります。sleep(), usleep() はライブラリ関数、nanosleep() はシステムコール*1です。 この usleep() や nanosleep() で 1ms 程度の短い時間プロセスを停止したとして、正確にその時間だけ停止させることはできるでしょうか。http://shiroikumo.at.infoseek.co.jp/linux/time/ にあるコードを参考に、実際に動かしてみます。カーネル 2.6.19 x86_64、CentOS 5 で試します。 まず、nanosleep() で 1ms のスリープを行
はじめに この連載ではUNIX系OSなどで使われるスレッド「pthread」についてサンプルを交えて説明していきます。pthreadはPOSIXが仕様化したスレッドモデルです。サンプルはCと一部C++、調査環境はFedora 8(2.6.23.1-49.fc8)、32bit、glibc-4.1-2、gcc-4.1.2-33およびFedora Core 6(2.6.18-1.2798.fc6)、32bit、glibc-2.5-3、gcc-4.1.1-30を使用しています。 これまでの記事 第1回:pthreadについて(概要・生成) 第2回:pthreadについて(同期) 第3回:pthreadについて(条件変数・モデル) 第4回:pthreadについて(スレッド固有データ) 第5回:pthreadについて(スタックサイズ) 第6回:pthreadについて(スケジューリング) 第7回:pth
システムコールについてどれくらいご存じですか? 連載:知ってトクするシステムコール(1) 難しいものと思われがちなシステムコール。しかし、学べばトクすることがいろいろあるんですよ
The GNU C Library is used as the C library in the GNU systems and most systems with the Linux kernel. The GNU Projectは6月30日(米国時間)、The GNU C Libraryの最新版「The GNU C Library version 2.16」を公開した。The GNU C Library(glibc)は、GNU Projectが開発しているC言語の標準ライブラリ実装。GNUオペレーティングシステムやLinuxディストリビューションなどで、標準のCライブラリとして利用されている。 glibcは移植しやすいよう設計されている高性能のCライブラリ。ISO C99やPOSIX.1-2008といった規格に準拠しており、国際化向けのインタフェースも提供されている。glibc 2.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く