最近在复制一段代码编译的时候出现一下错误:
root@ubuntu:/test/linux/20160218# gcc -lpthread mutex.c
mutex.c: In function ‘main’:
mutex.c:32: error: stray ‘\302’ in program
mutex.c:32: error: stray ‘\240’ in program
mutex.c:32: error: stray ‘\302’ in program
mutex.c:32: error: stray ‘\240’ in program
解决方法:
od -c 文件名
我的文件名是:mutex.c
敲完后如下:
root@ubuntu:/test/linux/20160218# od -c mutex.c
0000000 # i n c l u d e < s t d i o .
0000020 h > \n # i n c l u d e " a p u
0000040 e . h " \n # i n c l u d e < p
0000060 t h r e a d . h > \n \n i n t a
0000100 = 0 ; \n p t h r e a d _ m u
0000120 t e x _ t m u t e x _ f o r _
0000140 h i d _ m o v e ; \n p t h r e
0000160 a d _ t n t i d 1 ; \n p t h r
0000200 e a d _ t n t i d 2 ; \n \n v o
0000220 i d * \n t h r _ f n 1 ( v o i
0000240 d * a r g ) \n { \n p r i n
0000260 t f ( " t h r e a d 1 b e f o
0000300 r e l o c k \ n " ) ; \n p
0000320 t h r e a d _ m u t e x _ l o c
0000340 k ( & m u t e x _ f o r _ h i d
0000360 _ m o v e ) ; \n \n p r
0000400 i n t f ( " l o c k t h r e a
0000420 d 1 \ n " ) ; \n } \n \n v o i d
0000440 * \n t h r _ f n 2 ( v o i d *
0000460 a r g ) \n { \n p r i n t f (
0000500 " t h r e a d 2 b e f o r e
0000520 l o c k \ n " ) ; \n p t h r
0000540 e a d _ m u t e x _ l o c k ( &
0000560 m u t e x _ f o r _ h i d _ m o
0000600 v e ) ; \n \n p r i n t
0000620 f ( " l o c k t h r e a d 2 \
0000640 n " ) ; \n \n } \n \n i n t m
0000660 a i n ( ) \n { \n i n t e r
0000700 r = - 1 ; \n p t h r e a
0000720 d _ m u t e x _ l o c k ( & m u
0000740 t e x _ f o r _ h i d _ m o v e
0000760 ) ; 302 240 \n \n e r r =
0001000 p t h r e a d _ c r e a t e ( &
0001020 n t i d 1 , N U L L , t h r
0001040 _ f n 1 , N U L L ) ; \n i
0001060 f ( e r r ! = 0 ) \n {
0001100 \n p r i n t f ( " c r e
0001120 a t e t h r e a d 1 e r r o
0001140 r \ n " ) ; \n } \n \n
0001160 e r r = p t h r e a d _ c r
0001200 e a t e ( & n t i d 2 , N U L
0001220 L , t h r _ f n 2 , N U L L
0001240 ) ; \n i f ( e r r ! =
0001260 0 ) \n { \n p r i n t
0001300 f ( " c r e a t e t h r e a d
0001320 2 e r r o r \ n " ) ; \n }
0001340 \n \n w h i l e ( 1 ) ; \n
0001360 }
0001361
在程序中很容易找到302,240,去掉重新编译就OK了