はじめに 本記事は電子書籍版もあります。 linuxカーネルはC言語のマクロを駆使して書かれています。それらのうち、凝ったマクロになじみの無い人には初見では意図がわからない&わかってみれば面白いであろうものをいくつか紹介いたします。対象読者は、C言語のユーザだけれども、マクロは定数定義くらいにしか使わないというライトなマクロユーザです。 マクロを使用する場所に依存するエラーを防ぐ 次のマクロは、二つの引き数の値を置換するだけの単純なものです。
![linuxカーネルで学ぶC言語のマクロ - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/b041778fecb776e7529f1bc02ae55cc389e04712/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Fogp-background-1150d8b18a7c15795b701a55ae908f94.png%3Fixlib%3Drb-1.2.2%26w%3D1200%26mark%3Dhttps%253A%252F%252Fqiita-user-contents.imgix.net%252F~text%253Fixlib%253Drb-1.2.2%2526w%253D840%2526h%253D380%2526txt%253Dlinux%2525E3%252582%2525AB%2525E3%252583%2525BC%2525E3%252583%25258D%2525E3%252583%2525AB%2525E3%252581%2525A7%2525E5%2525AD%2525A6%2525E3%252581%2525B6C%2525E8%2525A8%252580%2525E8%2525AA%25259E%2525E3%252581%2525AE%2525E3%252583%25259E%2525E3%252582%2525AF%2525E3%252583%2525AD%2526txt-color%253D%252523333%2526txt-font%253DAvenir-Black%2526txt-size%253D54%2526txt-clip%253Dellipsis%2526txt-align%253Dcenter%25252Cmiddle%2526s%253D5d55eb82a88c61cf6feec0d4c6c52c2a%26mark-align%3Dcenter%252Cmiddle%26blend%3Dhttps%253A%252F%252Fqiita-user-contents.imgix.net%252F~text%253Fixlib%253Drb-1.2.2%2526w%253D840%2526h%253D500%2526txt%253D%252540satoru_takeuchi%2526txt-color%253D%252523333%2526txt-font%253DAvenir-Black%2526txt-size%253D45%2526txt-align%253Dright%25252Cbottom%2526s%253D4d7b9e0858a67385a93b62706bc78045%26blend-align%3Dcenter%252Cmiddle%26blend-mode%3Dnormal%26s%3Dd41532d8278049be507faa22cdf33110)
コマンドライン引数を取得する方法と,それを簡単に行なうライブラリ関数getoptについて. 引数の取得 とりあえず引数を取ってみる getopt いろんなコマンドはいろんな引数をとる. int main(int argc,char *argv[]) のargcが引数の数でargvが引数の値である.0番目の引数の値はプログラム自身の名前である. とりあえず引数を取ってみる次のプログラムは全ての引数を表示するだけのものである. includeint main(int argc,char *argv[]) { int i; for(i=0;i<argc;i++){ fprintf(stdout,”arg %d is %s\n”,i,argv[i]); } exit(0); } これを実行すると以下の感じになる. $> ./getArgs hoge fuga arg 0 is ./getArgs
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く