狠狠撸

狠狠撸Share a Scribd company logo
C-LANG
コンパイル?方法

1.	
 ?cc	
 ?chap1_?1.c	
 ?
       →	
 ?a.out	
 ?が?生成される

2.	
 ?cc	
 ?chap1_?1.c	
 ?-‐??o	
 ?chap1_?1
       →	
 ?chap1_?1	
 ?が?生成される
主なエラーメッセージ

1.	
 ?syntax	
 ?error
         -‐??	
 ?スペルミスなどの?文法エラー

2.	
 ?undeclared
         -‐??	
 ?宣?言されていない変数エラー

3.	
 ?parse	
 ?error
         -‐??	
 ?{}抜けなどの構?文エラー
intのあれこれ

?8進数?入れる場合は	
 ?x	
 ?=	
 ?0666

?16進数?入れる場合は	
 ?x	
 ?=	
 ?0x6F15
インクリメントの順番

?x++
  式を評価してから,	
 ?xに1を?足す

?++x
  xに1を?足してから,	
 ?式を評価
ビット演算?子

&	
 ?:	
 ?論論理理積	
 ?
 |	
 ?:	
 ?論論理理和
^	
 ?:	
 ?排他的論論理理和
~~	
 ?:	
 ?ビットを反転させる
<<	
 ?:	
 ?指定した数だけ左へシフト	
 ?(0埋め)
>>	
 ?:	
 ?指定した数だけ右へシフト	
 ?(機種依存)
条件式

?条件式	
 ??	
 ?式1	
 ?:	
 ?式2

     成?立立→式1
     不不成?立立→式2
配列列

 int	
 ?x[30];
 int	
 ?x[30]	
 ?=	
 ?{10,	
 ?20,	
 ?30,	
 ?328};
 int	
 ?x[]	
 ?=	
 ?{10,	
 ?20,	
 ?30,	
 ?328};

 int	
 ?x[]; ←Error!
?文字列列
 char	
 ?name[20];
 name[0]=?’S?’;	
 ?name[1]=”u”;	
 ?name[2]=.....

 char	
 ?name[20]	
 ?=	
 ?{?‘S?’,	
 ??‘u?’,	
 ??‘z?’,	
 ??‘u?’,	
 ??‘k?’,	
 ??‘i?’,	
 ??‘?0?’};
 printf(“%s?n”,	
 ?name);

 char	
 ?name[20]	
 ?=	
 ?“Suzuki”;	
 ?でも上と同様の効果

                                          ?文字はシングルクォーテーション!
                                          ?文字列列はダブルクォーテーション!
?文字列列

  scanf(“%d”,	
 ?x);

  scanf(“%s”,	
 ?str[0]);
                  ?文字列列をscanfする場合、
                  先頭を指定すればOK.
2次元配列列

 int	
 ?data[3][5]	
 ?={	
 ?{3,4,8,6,4},	
 ?{6,4,2,2,0},	
 ?...};
           ?行行	
 ?	
 ?列列


                                            5列列



                           3?行行
ポインタの役割


 ①	
 ?配列列に添字を使わずアクセス!(古来)


 ②	
 ??文字列列を扱う!


 ③	
 ?関数の引?用として?用いる!
ポインタの使い?方

int	
 ?*pa;
pa	
 ?=	
 ?&a; a	
 ?のアドレスを?入れる
printf(“%p?n”,	
 ?pa); a	
 ?のアドレスを表?示
printf(“%d?n”,	
 ?*pa); a	
 ?の値を表?示

*pa	
 ?+=	
 ?10;   a	
 ?に10を?足す
ファイルの?入出?力力	
 ?-‐??	
 ?ファイルポインタ編
                                             r	
 ?	
 ?読み出し
                                             w	
 ?	
 ?書き込み
 FILE	
 ?*fp;                                a	
 ?	
 ?追加
                                             r+	
 ?読み書き(新規作成なし)
                                             w+	
 ?読み書き(新規作成あり)
 fp	
 ?=	
 ?fopen(“?le.txt”,	
 ?“r”);
                                             a+	
 ?読み書き(新規作成あり)

 if(	
 ?(fp	
 ?=	
 ?fopen(“?le.txt”,	
 ?“r”))	
 ?==	
 ?NULL	
 ?){
        /*	
 ?エラー処理理	
 ?*/
   }
ファイルの?入出?力力	
 ?-‐??	
 ??入?力力関数編


  while(	
 ?(c=getc(fp))	
 ?!=	
 ?EOF	
 ?)
   printf(“%c”,	
 ?c);



  while(	
 ?fscanf(fp,	
 ?“%s%d”,	
 ?city,	
 ?value)	
 ?!=	
 ?EOF	
 ?)
   printf(“%s	
 ?-‐??>	
 ?%d?n”,	
 ?city,	
 ?value);
                                          書式?文字の利利?用が可能!
ファイルの?入出?力力	
 ?-‐??	
 ?出?力力関数編


  for(i=0;	
 ?name[i]	
 ?!=	
 ?(c=getc(fp))	
 ?!=	
 ?EOF	
 ?)
    printf(“%c”,	
 ?c);



  fprintf(fp,	
 ?“%s%d”,	
 ?city,	
 ?value);

                                        書式?文字の利利?用が可能!
?高度度なポインタ


 1.	
 ??文字列列の配列列を持つ

     char	
 ?*配列列名[]	
 ?=	
 ?{“?文字列列1”,	
 ?“?文字列列2”,	
 ?...	
 ?};
?高度度なポインタ


 2.	
 ?ポインタのポインタ
    char	
 ?*p,	
 ?**dp;
    p	
 ?=&c;
    dp	
 ?=	
 ?&p;

    printf(“%p?n”,	
 ?*dp);    変数C	
 ?のアドレスが表?示

    printf(“%d?n”,	
 ?**dp);   変数C	
 ?の中?身が表?示
コマンドライン引数

 int	
 ?main(int	
 ?argc,	
 ?char	
 ?*argv[]){
       .....
       .....
       .....
       return	
 ?0;
   }
モジュール化プログラミング


  -‐??	
 ?make	
 ?コマンド
  -‐??	
 ?関数プロトタイプ宣?言
  -‐??	
 ?ヘッダファイル(.h)
  -‐??	
 ?読み込む時は	
 ?#include	
 ?“header.h”
  -‐??	
 ?extern	
 ?int	
 ?x;	
 ?//	
 ?外部変数

                       環境変数で指定されてる場合は、
                       #include	
 ?<stdio.h>
メモリの管理理

  Score	
 ?*p,	
 ?*top;
  if(	
 ?(p	
 ?=	
 ?(Score	
 ?*)malloc(sizeof(Score)	
 ?*	
 ?size))
               ==NULL){
               /*	
 ?領領域確保エラー	
 ?*/
            }
  top	
 ?=	
 ?p;	
 ?//先頭を覚えておいて…


  /*	
 ?pをほげほげ	
 ?*/

  free(top);	
 ?//開放!
?文字列列の配列列


  -‐??定義
  ? char	
 ?*str[]	
 ?=	
 ?{“Hello”,	
 ?“Good-‐??bye”,	
 ?“OK”};

  -‐??表?示	
 ?
      	
 ?printf(“%s?n”,	
 ?str[0]);
      	
 ?printf(“%s?n”,	
 ?str[1]);
      	
 ?printf(“%s?n”,	
 ?str[0]);
システムコール

 カーネルの昨?日にアクセスする関数
 	
 ?(代表例例)
  SIGINT	
 ?:	
 ?端末からのインタラプト?文字
  SIGALRM	
 ?:	
 ?alarmシステムコール
  SIGSEGV	
 ?:	
 ?不不正なメモリアクセス



 signal(SIGINT,	
 ?func);

インタラプト?文字                   func()	
 ?を呼び出し
が?入?力力されたら
fork()

   実?行行中のプロセスを複製する
                                   亲
         pid	
 ?=	
 ?fork();

                                       fork()
         if(	
 ?pid	
 ?!=	
 ?0){
             //	
 ?亲プロセス
         }	
 ?else	
 ?{
         	
 ?	
 ?//	
 ??子プロセス          ?子
         }
wait()とexit()
  ?子の終了了を待つ                                      wait()

     pid	
 ?=	
 ?fork();                     亲

     if(	
 ?pid	
 ?!=	
 ?0){
         //	
 ?亲プロセス                             exit()
         wait(&status);	
 ?//	
 ??子の終了了を待つ


     }	
 ?else	
 ?{                              ?子
     	
 ?	
 ?//	
 ??子プロセス
         exit(status);	
 ?//	
 ?終了了を明?示
     }
exec(),	
 ?execvp()
   他プログラムを実?行行
                                                              亲
       char	
 ?*argv[]	
 ?=	
 ?{“ls”,	
 ?“-‐??a”,	
 ?NULL};
       execvp(“ls”,	
 ?argv);                                     execvp()


    コマンドのパス                         コマンドライン
                                    引数を渡す
                                                                  亲
プロセス間通信

  -‐??	
 ?パイプ
  -‐??	
 ?FIFO特殊ファイル
  -‐??	
 ?ソケット
プロセス間通信	
 ?-‐??	
 ?パイプ

    -‐??	
 ?fd[0]	
 ?:	
 ?読み取り専?用
    -‐??	
 ?fd[1]	
 ?:	
 ?書き込み専?用
    -‐??	
 ?pipe(fd)

                                    fd[0]     fd[0]

                             亲              パイプ           ?子


                                    fd[0]         fd[1]
亲         パ   ?子
プロセス間通信	
 ?-‐??	
 ?パイプ

    if(	
 ?pipe(fd)==	
 ?-‐??1){
            perror(“pipe”);
            }

    if(	
 ?(len=write(fd[1],	
 ?buf,	
 ?strlen(buf)+1))==NULL){
         perror(“write”);
         }

    if(	
 ?(len=read(fd[0],	
 ?buf,	
 ?strlen(buf)))==NULL){
         perror(“read”);
         }
プロセス間通信	
 ?-‐??	
 ?FIFO特殊

    -‐??	
 ?任意のプロセス間で通信可能
    -‐??	
 ?mknode(),	
 ?mk?fo()
    -‐??	
 ?扱いはファイル操作と同じ




                      亲       FIFO   亲
亲     FIFO   亲
 プロセス間通信	
 ?-‐??	
 ?パイプ

         if(	
 ?mk?fo(“myFifo”,	
 ?0666)	
 ?==	
 ?-‐??1){
make             perror(“mk?fo”);
                 }

         if(	
 ?(fd=open(“my?fo”,	
 ?O_?WRONLY))	
 ?==	
 ?-‐??1){
open          perror(“open”);
              }

         if(	
 ?write(fd,	
 ?buf,	
 ?sizeof(buf)))==-‐??1){
write!        perror(“write”);
              }
亲    FIFO   亲
 プロセス間通信	
 ?-‐??	
 ?パイプ

        if(	
 ?(fd=open(“my?fo”,	
 ?O_?RDONLY))	
 ?==	
 ?-‐??1){
open         perror(“open”);
             }

        if(	
 ?ret=	
 ?read(fd,	
 ?buf,	
 ?sizeof(buf)))==-‐??1){
read!        perror(“write”);
             }
プロセス間通信	
 ?-‐??	
 ?ソケット

    -‐??	
 ?ネットワーク上でやり取り可能
    -‐??	
 ?コードなし

          ソケット            ソケット




                    ネット
  亲                 ワーク
                                 亲

More Related Content

What's hot (20)

谜の言语贵辞谤迟丑が谜なので実装した
谜の言语贵辞谤迟丑が谜なので実装した谜の言语贵辞谤迟丑が谜なので実装した
谜の言语贵辞谤迟丑が谜なので実装した
t-sin
?
php7's ast
php7's astphp7's ast
php7's ast
do_aki
?
PostgreSQL - C言語によるユーザ定義関数の作り方
PostgreSQL - C言語によるユーザ定義関数の作り方PostgreSQL - C言語によるユーザ定義関数の作り方
PostgreSQL - C言語によるユーザ定義関数の作り方
Satoshi Nagayasu
?
笔贬笔の今とこれから2014
笔贬笔の今とこれから2014笔贬笔の今とこれから2014
笔贬笔の今とこれから2014
Rui Hirokawa
?
ラホ?ユース最终成果报告会(奥别产公开版)
ラホ?ユース最终成果报告会(奥别产公开版)ラホ?ユース最终成果报告会(奥别产公开版)
ラホ?ユース最终成果报告会(奥别产公开版)
Shinichi Awamoto
?
データサイエンスワールドから颁++を眺めてみる
データサイエンスワールドから颁++を眺めてみるデータサイエンスワールドから颁++を眺めてみる
データサイエンスワールドから颁++を眺めてみる
Shintaro Fukushima
?
シェル入门
シェル入门シェル入门
シェル入门
ina job
?
Python で munin plugin を書いてみる
Python で munin plugin を書いてみるPython で munin plugin を書いてみる
Python で munin plugin を書いてみる
ftnk
?
Glibc malloc internal
Glibc malloc internalGlibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
?
搁の蹿蹿で骋尝惭してみたけど...
搁の蹿蹿で骋尝惭してみたけど...搁の蹿蹿で骋尝惭してみたけど...
搁の蹿蹿で骋尝惭してみたけど...
Kazuya Wada
?
ナウなヤングにバカうけのイカしたタグ付き共用体
ナウなヤングにバカうけのイカしたタグ付き共用体ナウなヤングにバカうけのイカしたタグ付き共用体
ナウなヤングにバカうけのイカしたタグ付き共用体
digitalghost
?
C++でHello worldを書いてみた
C++でHello worldを書いてみたC++でHello worldを書いてみた
C++でHello worldを書いてみた
firewood
?
翱厂厂开発勉强会-10
翱厂厂开発勉强会-10翱厂厂开発勉强会-10
翱厂厂开発勉强会-10
Kohei KaiGai
?
マスターオフ?コ?ールーチンアント?チャネル スタートGo #1
マスターオフ?コ?ールーチンアント?チャネル   スタートGo #1マスターオフ?コ?ールーチンアント?チャネル   スタートGo #1
マスターオフ?コ?ールーチンアント?チャネル スタートGo #1
Takuya Ueda
?
搁の蹿蹿と产颈驳尘别尘辞谤测と搁别惫辞厂肠补濒别搁とを比较してみた
搁の蹿蹿と产颈驳尘别尘辞谤测と搁别惫辞厂肠补濒别搁とを比较してみた搁の蹿蹿と产颈驳尘别尘辞谤测と搁别惫辞厂肠补濒别搁とを比较してみた
搁の蹿蹿と产颈驳尘别尘辞谤测と搁别惫辞厂肠补濒别搁とを比较してみた
Kazuya Wada
?
谜の言语贵辞谤迟丑が谜なので実装した
谜の言语贵辞谤迟丑が谜なので実装した谜の言语贵辞谤迟丑が谜なので実装した
谜の言语贵辞谤迟丑が谜なので実装した
t-sin
?
php7's ast
php7's astphp7's ast
php7's ast
do_aki
?
PostgreSQL - C言語によるユーザ定義関数の作り方
PostgreSQL - C言語によるユーザ定義関数の作り方PostgreSQL - C言語によるユーザ定義関数の作り方
PostgreSQL - C言語によるユーザ定義関数の作り方
Satoshi Nagayasu
?
笔贬笔の今とこれから2014
笔贬笔の今とこれから2014笔贬笔の今とこれから2014
笔贬笔の今とこれから2014
Rui Hirokawa
?
ラホ?ユース最终成果报告会(奥别产公开版)
ラホ?ユース最终成果报告会(奥别产公开版)ラホ?ユース最终成果报告会(奥别产公开版)
ラホ?ユース最终成果报告会(奥别产公开版)
Shinichi Awamoto
?
データサイエンスワールドから颁++を眺めてみる
データサイエンスワールドから颁++を眺めてみるデータサイエンスワールドから颁++を眺めてみる
データサイエンスワールドから颁++を眺めてみる
Shintaro Fukushima
?
シェル入门
シェル入门シェル入门
シェル入门
ina job
?
Python で munin plugin を書いてみる
Python で munin plugin を書いてみるPython で munin plugin を書いてみる
Python で munin plugin を書いてみる
ftnk
?
搁の蹿蹿で骋尝惭してみたけど...
搁の蹿蹿で骋尝惭してみたけど...搁の蹿蹿で骋尝惭してみたけど...
搁の蹿蹿で骋尝惭してみたけど...
Kazuya Wada
?
ナウなヤングにバカうけのイカしたタグ付き共用体
ナウなヤングにバカうけのイカしたタグ付き共用体ナウなヤングにバカうけのイカしたタグ付き共用体
ナウなヤングにバカうけのイカしたタグ付き共用体
digitalghost
?
C++でHello worldを書いてみた
C++でHello worldを書いてみたC++でHello worldを書いてみた
C++でHello worldを書いてみた
firewood
?
翱厂厂开発勉强会-10
翱厂厂开発勉强会-10翱厂厂开発勉强会-10
翱厂厂开発勉强会-10
Kohei KaiGai
?
マスターオフ?コ?ールーチンアント?チャネル スタートGo #1
マスターオフ?コ?ールーチンアント?チャネル   スタートGo #1マスターオフ?コ?ールーチンアント?チャネル   スタートGo #1
マスターオフ?コ?ールーチンアント?チャネル スタートGo #1
Takuya Ueda
?
搁の蹿蹿と产颈驳尘别尘辞谤测と搁别惫辞厂肠补濒别搁とを比较してみた
搁の蹿蹿と产颈驳尘别尘辞谤测と搁别惫辞厂肠补濒别搁とを比较してみた搁の蹿蹿と产颈驳尘别尘辞谤测と搁别惫辞厂肠补濒别搁とを比较してみた
搁の蹿蹿と产颈驳尘别尘辞谤测と搁别惫辞厂肠补濒别搁とを比较してみた
Kazuya Wada
?

Similar to C-langage (20)

窜贵厂のソースコードをチラ见してみる
窜贵厂のソースコードをチラ见してみる窜贵厂のソースコードをチラ见してみる
窜贵厂のソースコードをチラ见してみる
Koichi Suzuki
?
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1
Ransui Iso
?
闯补惫补セキュアコーディングセミナー东京第3回讲义
闯补惫补セキュアコーディングセミナー东京第3回讲义闯补惫补セキュアコーディングセミナー东京第3回讲义
闯补惫补セキュアコーディングセミナー东京第3回讲义
JPCERT Coordination Center
?
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
Jun Nogata
?
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
Tomoya Nakayama
?
厂肠补辫测て?作る?解析するハ?ケット
厂肠补辫测て?作る?解析するハ?ケット厂肠补辫测て?作る?解析するハ?ケット
厂肠补辫测て?作る?解析するハ?ケット
Takaaki Hoyo
?
これからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールこれからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツール
Nobuhisa Koizumi
?
ラズパイでデバイスドライバを作ってみた。
ラズパイでデバイスドライバを作ってみた。ラズパイでデバイスドライバを作ってみた。
ラズパイでデバイスドライバを作ってみた。
Kazuki Onishi
?
研究生のためのC++ no.2
研究生のためのC++ no.2研究生のためのC++ no.2
研究生のためのC++ no.2
Tomohiro Namba
?
Okinawapm #1
Okinawapm #1Okinawapm #1
Okinawapm #1
Kei Kamikawa
?
フ?ロク?ラマ讲习第3回
フ?ロク?ラマ讲习第3回フ?ロク?ラマ讲习第3回
フ?ロク?ラマ讲习第3回
Yuma Yoshimoto
?
贵颈苍诲(1)
贵颈苍诲(1)贵颈苍诲(1)
贵颈苍诲(1)
akitsukada
?
Yaminabe fortran
Yaminabe fortranYaminabe fortran
Yaminabe fortran
贬笔颁システムズ株式会社
?
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説
do_aki
?
Unixカーネルの設計 7 プロセスの制御
Unixカーネルの設計 7 プロセスの制御Unixカーネルの設計 7 プロセスの制御
Unixカーネルの設計 7 プロセスの制御
Norito Agetsuma
?
dofilewrite and vn_write
dofilewrite and vn_writedofilewrite and vn_write
dofilewrite and vn_write
kusabanachi
?
窜贵厂のソースコードをチラ见してみる
窜贵厂のソースコードをチラ见してみる窜贵厂のソースコードをチラ见してみる
窜贵厂のソースコードをチラ见してみる
Koichi Suzuki
?
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1
Ransui Iso
?
闯补惫补セキュアコーディングセミナー东京第3回讲义
闯补惫补セキュアコーディングセミナー东京第3回讲义闯补惫补セキュアコーディングセミナー东京第3回讲义
闯补惫补セキュアコーディングセミナー东京第3回讲义
JPCERT Coordination Center
?
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash
Jun Nogata
?
厂肠补辫测て?作る?解析するハ?ケット
厂肠补辫测て?作る?解析するハ?ケット厂肠补辫测て?作る?解析するハ?ケット
厂肠补辫测て?作る?解析するハ?ケット
Takaaki Hoyo
?
これからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールこれからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツール
Nobuhisa Koizumi
?
ラズパイでデバイスドライバを作ってみた。
ラズパイでデバイスドライバを作ってみた。ラズパイでデバイスドライバを作ってみた。
ラズパイでデバイスドライバを作ってみた。
Kazuki Onishi
?
研究生のためのC++ no.2
研究生のためのC++ no.2研究生のためのC++ no.2
研究生のためのC++ no.2
Tomohiro Namba
?
フ?ロク?ラマ讲习第3回
フ?ロク?ラマ讲习第3回フ?ロク?ラマ讲习第3回
フ?ロク?ラマ讲习第3回
Yuma Yoshimoto
?
贵颈苍诲(1)
贵颈苍诲(1)贵颈苍诲(1)
贵颈苍诲(1)
akitsukada
?
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説
do_aki
?
Unixカーネルの設計 7 プロセスの制御
Unixカーネルの設計 7 プロセスの制御Unixカーネルの設計 7 プロセスの制御
Unixカーネルの設計 7 プロセスの制御
Norito Agetsuma
?
dofilewrite and vn_write
dofilewrite and vn_writedofilewrite and vn_write
dofilewrite and vn_write
kusabanachi
?

More from Hiramatsu Ryosuke (12)

iOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahooiOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahoo
Hiramatsu Ryosuke
?
これからはじめる SwiftPlayground入門
これからはじめる SwiftPlayground入門これからはじめる SwiftPlayground入門
これからはじめる SwiftPlayground入門
Hiramatsu Ryosuke
?
6秒動画アプリ Vineの作り方
6秒動画アプリ Vineの作り方6秒動画アプリ Vineの作り方
6秒動画アプリ Vineの作り方
Hiramatsu Ryosuke
?
颈翱厂アプリ开発にほんのり役に立つ迟颈辫蝉集
颈翱厂アプリ开発にほんのり役に立つ迟颈辫蝉集颈翱厂アプリ开発にほんのり役に立つ迟颈辫蝉集
颈翱厂アプリ开発にほんのり役に立つ迟颈辫蝉集
Hiramatsu Ryosuke
?
5分でつまむEffective Objective-C
5分でつまむEffective Objective-C5分でつまむEffective Objective-C
5分でつまむEffective Objective-C
Hiramatsu Ryosuke
?
Xcodeを便利に使って爆速開発する #yxcm
Xcodeを便利に使って爆速開発する #yxcm Xcodeを便利に使って爆速開発する #yxcm
Xcodeを便利に使って爆速開発する #yxcm
Hiramatsu Ryosuke
?
iOSアプリの特急申請 - Apple Expedited Review Request
iOSアプリの特急申請 - Apple Expedited Review RequestiOSアプリの特急申請 - Apple Expedited Review Request
iOSアプリの特急申請 - Apple Expedited Review Request
Hiramatsu Ryosuke
?
emoSound by たこ部 | OpenHackDay2
emoSound by たこ部 | OpenHackDay2emoSound by たこ部 | OpenHackDay2
emoSound by たこ部 | OpenHackDay2
Hiramatsu Ryosuke
?
础辫辫厂飞颈迟肠丑别谤でアプリをユーザーファーストに
础辫辫厂飞颈迟肠丑别谤でアプリをユーザーファーストに础辫辫厂飞颈迟肠丑别谤でアプリをユーザーファーストに
础辫辫厂飞颈迟肠丑别谤でアプリをユーザーファーストに
Hiramatsu Ryosuke
?
Bitbucket Pull Request 練習帳
Bitbucket Pull Request 練習帳Bitbucket Pull Request 練習帳
Bitbucket Pull Request 練習帳
Hiramatsu Ryosuke
?
颈笔丑辞苍别アプリ开発を楽に楽しくするサイトまとめ
颈笔丑辞苍别アプリ开発を楽に楽しくするサイトまとめ颈笔丑辞苍别アプリ开発を楽に楽しくするサイトまとめ
颈笔丑辞苍别アプリ开発を楽に楽しくするサイトまとめ
Hiramatsu Ryosuke
?
これからはじめる SwiftPlayground入門
これからはじめる SwiftPlayground入門これからはじめる SwiftPlayground入門
これからはじめる SwiftPlayground入門
Hiramatsu Ryosuke
?
6秒動画アプリ Vineの作り方
6秒動画アプリ Vineの作り方6秒動画アプリ Vineの作り方
6秒動画アプリ Vineの作り方
Hiramatsu Ryosuke
?
颈翱厂アプリ开発にほんのり役に立つ迟颈辫蝉集
颈翱厂アプリ开発にほんのり役に立つ迟颈辫蝉集颈翱厂アプリ开発にほんのり役に立つ迟颈辫蝉集
颈翱厂アプリ开発にほんのり役に立つ迟颈辫蝉集
Hiramatsu Ryosuke
?
5分でつまむEffective Objective-C
5分でつまむEffective Objective-C5分でつまむEffective Objective-C
5分でつまむEffective Objective-C
Hiramatsu Ryosuke
?
Xcodeを便利に使って爆速開発する #yxcm
Xcodeを便利に使って爆速開発する #yxcm Xcodeを便利に使って爆速開発する #yxcm
Xcodeを便利に使って爆速開発する #yxcm
Hiramatsu Ryosuke
?
iOSアプリの特急申請 - Apple Expedited Review Request
iOSアプリの特急申請 - Apple Expedited Review RequestiOSアプリの特急申請 - Apple Expedited Review Request
iOSアプリの特急申請 - Apple Expedited Review Request
Hiramatsu Ryosuke
?
emoSound by たこ部 | OpenHackDay2
emoSound by たこ部 | OpenHackDay2emoSound by たこ部 | OpenHackDay2
emoSound by たこ部 | OpenHackDay2
Hiramatsu Ryosuke
?
础辫辫厂飞颈迟肠丑别谤でアプリをユーザーファーストに
础辫辫厂飞颈迟肠丑别谤でアプリをユーザーファーストに础辫辫厂飞颈迟肠丑别谤でアプリをユーザーファーストに
础辫辫厂飞颈迟肠丑别谤でアプリをユーザーファーストに
Hiramatsu Ryosuke
?
Bitbucket Pull Request 練習帳
Bitbucket Pull Request 練習帳Bitbucket Pull Request 練習帳
Bitbucket Pull Request 練習帳
Hiramatsu Ryosuke
?
颈笔丑辞苍别アプリ开発を楽に楽しくするサイトまとめ
颈笔丑辞苍别アプリ开発を楽に楽しくするサイトまとめ颈笔丑辞苍别アプリ开発を楽に楽しくするサイトまとめ
颈笔丑辞苍别アプリ开発を楽に楽しくするサイトまとめ
Hiramatsu Ryosuke
?

Recently uploaded (11)

第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
Matsushita Laboratory
?
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
Matsushita Laboratory
?
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
?
LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3
LFDT Tokyo Meetup
?
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
sugiuralab
?
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
harmonylab
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
?
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
sugiuralab
?
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
Matsushita Laboratory
?
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
?
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
Matsushita Laboratory
?
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
Matsushita Laboratory
?
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
?
LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3
LFDT Tokyo Meetup
?
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
sugiuralab
?
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
harmonylab
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
?
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
sugiuralab
?
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
Matsushita Laboratory
?
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
?

C-langage

  • 2. コンパイル?方法 1. ?cc ?chap1_?1.c ? → ?a.out ?が?生成される 2. ?cc ?chap1_?1.c ?-‐??o ?chap1_?1 → ?chap1_?1 ?が?生成される
  • 3. 主なエラーメッセージ 1. ?syntax ?error -‐?? ?スペルミスなどの?文法エラー 2. ?undeclared -‐?? ?宣?言されていない変数エラー 3. ?parse ?error -‐?? ?{}抜けなどの構?文エラー
  • 4. intのあれこれ ?8進数?入れる場合は ?x ?= ?0666 ?16進数?入れる場合は ?x ?= ?0x6F15
  • 5. インクリメントの順番 ?x++ 式を評価してから, ?xに1を?足す ?++x xに1を?足してから, ?式を評価
  • 6. ビット演算?子 & ?: ?論論理理積 ? | ?: ?論論理理和 ^ ?: ?排他的論論理理和 ~~ ?: ?ビットを反転させる << ?: ?指定した数だけ左へシフト ?(0埋め) >> ?: ?指定した数だけ右へシフト ?(機種依存)
  • 7. 条件式 ?条件式 ?? ?式1 ?: ?式2 成?立立→式1 不不成?立立→式2
  • 8. 配列列 int ?x[30]; int ?x[30] ?= ?{10, ?20, ?30, ?328}; int ?x[] ?= ?{10, ?20, ?30, ?328}; int ?x[]; ←Error!
  • 9. ?文字列列 char ?name[20]; name[0]=?’S?’; ?name[1]=”u”; ?name[2]=..... char ?name[20] ?= ?{?‘S?’, ??‘u?’, ??‘z?’, ??‘u?’, ??‘k?’, ??‘i?’, ??‘?0?’}; printf(“%s?n”, ?name); char ?name[20] ?= ?“Suzuki”; ?でも上と同様の効果 ?文字はシングルクォーテーション! ?文字列列はダブルクォーテーション!
  • 10. ?文字列列 scanf(“%d”, ?x); scanf(“%s”, ?str[0]); ?文字列列をscanfする場合、 先頭を指定すればOK.
  • 11. 2次元配列列 int ?data[3][5] ?={ ?{3,4,8,6,4}, ?{6,4,2,2,0}, ?...}; ?行行 ? ?列列 5列列 3?行行
  • 12. ポインタの役割 ① ?配列列に添字を使わずアクセス!(古来) ② ??文字列列を扱う! ③ ?関数の引?用として?用いる!
  • 13. ポインタの使い?方 int ?*pa; pa ?= ?&a; a ?のアドレスを?入れる printf(“%p?n”, ?pa); a ?のアドレスを表?示 printf(“%d?n”, ?*pa); a ?の値を表?示 *pa ?+= ?10; a ?に10を?足す
  • 14. ファイルの?入出?力力 ?-‐?? ?ファイルポインタ編 r ? ?読み出し w ? ?書き込み FILE ?*fp; a ? ?追加 r+ ?読み書き(新規作成なし) w+ ?読み書き(新規作成あり) fp ?= ?fopen(“?le.txt”, ?“r”); a+ ?読み書き(新規作成あり) if( ?(fp ?= ?fopen(“?le.txt”, ?“r”)) ?== ?NULL ?){ /* ?エラー処理理 ?*/ }
  • 15. ファイルの?入出?力力 ?-‐?? ??入?力力関数編 while( ?(c=getc(fp)) ?!= ?EOF ?) printf(“%c”, ?c); while( ?fscanf(fp, ?“%s%d”, ?city, ?value) ?!= ?EOF ?) printf(“%s ?-‐??> ?%d?n”, ?city, ?value); 書式?文字の利利?用が可能!
  • 16. ファイルの?入出?力力 ?-‐?? ?出?力力関数編 for(i=0; ?name[i] ?!= ?(c=getc(fp)) ?!= ?EOF ?) printf(“%c”, ?c); fprintf(fp, ?“%s%d”, ?city, ?value); 書式?文字の利利?用が可能!
  • 17. ?高度度なポインタ 1. ??文字列列の配列列を持つ char ?*配列列名[] ?= ?{“?文字列列1”, ?“?文字列列2”, ?... ?};
  • 18. ?高度度なポインタ 2. ?ポインタのポインタ char ?*p, ?**dp; p ?=&c; dp ?= ?&p; printf(“%p?n”, ?*dp); 変数C ?のアドレスが表?示 printf(“%d?n”, ?**dp); 変数C ?の中?身が表?示
  • 19. コマンドライン引数 int ?main(int ?argc, ?char ?*argv[]){ ..... ..... ..... return ?0; }
  • 20. モジュール化プログラミング -‐?? ?make ?コマンド -‐?? ?関数プロトタイプ宣?言 -‐?? ?ヘッダファイル(.h) -‐?? ?読み込む時は ?#include ?“header.h” -‐?? ?extern ?int ?x; ?// ?外部変数 環境変数で指定されてる場合は、 #include ?<stdio.h>
  • 21. メモリの管理理 Score ?*p, ?*top; if( ?(p ?= ?(Score ?*)malloc(sizeof(Score) ?* ?size)) ==NULL){ /* ?領領域確保エラー ?*/ } top ?= ?p; ?//先頭を覚えておいて… /* ?pをほげほげ ?*/ free(top); ?//開放!
  • 22. ?文字列列の配列列 -‐??定義 ? char ?*str[] ?= ?{“Hello”, ?“Good-‐??bye”, ?“OK”}; -‐??表?示 ? ?printf(“%s?n”, ?str[0]); ?printf(“%s?n”, ?str[1]); ?printf(“%s?n”, ?str[0]);
  • 23. システムコール カーネルの昨?日にアクセスする関数 ?(代表例例) SIGINT ?: ?端末からのインタラプト?文字 SIGALRM ?: ?alarmシステムコール SIGSEGV ?: ?不不正なメモリアクセス signal(SIGINT, ?func); インタラプト?文字 func() ?を呼び出し が?入?力力されたら
  • 24. fork() 実?行行中のプロセスを複製する 亲 pid ?= ?fork(); fork() if( ?pid ?!= ?0){ // ?亲プロセス } ?else ?{ ? ?// ??子プロセス ?子 }
  • 25. wait()とexit() ?子の終了了を待つ wait() pid ?= ?fork(); 亲 if( ?pid ?!= ?0){ // ?亲プロセス exit() wait(&status); ?// ??子の終了了を待つ } ?else ?{ ?子 ? ?// ??子プロセス exit(status); ?// ?終了了を明?示 }
  • 26. exec(), ?execvp() 他プログラムを実?行行 亲 char ?*argv[] ?= ?{“ls”, ?“-‐??a”, ?NULL}; execvp(“ls”, ?argv); execvp() コマンドのパス コマンドライン 引数を渡す 亲
  • 27. プロセス間通信 -‐?? ?パイプ -‐?? ?FIFO特殊ファイル -‐?? ?ソケット
  • 28. プロセス間通信 ?-‐?? ?パイプ -‐?? ?fd[0] ?: ?読み取り専?用 -‐?? ?fd[1] ?: ?書き込み専?用 -‐?? ?pipe(fd) fd[0] fd[0] 亲 パイプ ?子 fd[0] fd[1]
  • 29. パ ?子 プロセス間通信 ?-‐?? ?パイプ if( ?pipe(fd)== ?-‐??1){ perror(“pipe”); } if( ?(len=write(fd[1], ?buf, ?strlen(buf)+1))==NULL){ perror(“write”); } if( ?(len=read(fd[0], ?buf, ?strlen(buf)))==NULL){ perror(“read”); }
  • 30. プロセス間通信 ?-‐?? ?FIFO特殊 -‐?? ?任意のプロセス間で通信可能 -‐?? ?mknode(), ?mk?fo() -‐?? ?扱いはファイル操作と同じ 亲 FIFO 亲
  • 31. FIFO 亲 プロセス間通信 ?-‐?? ?パイプ if( ?mk?fo(“myFifo”, ?0666) ?== ?-‐??1){ make perror(“mk?fo”); } if( ?(fd=open(“my?fo”, ?O_?WRONLY)) ?== ?-‐??1){ open perror(“open”); } if( ?write(fd, ?buf, ?sizeof(buf)))==-‐??1){ write! perror(“write”); }
  • 32. FIFO 亲 プロセス間通信 ?-‐?? ?パイプ if( ?(fd=open(“my?fo”, ?O_?RDONLY)) ?== ?-‐??1){ open perror(“open”); } if( ?ret= ?read(fd, ?buf, ?sizeof(buf)))==-‐??1){ read! perror(“write”); }
  • 33. プロセス間通信 ?-‐?? ?ソケット -‐?? ?ネットワーク上でやり取り可能 -‐?? ?コードなし ソケット ソケット ネット 亲 ワーク 亲