タグ付けされた質問 「c」

Cは、オペレーティングシステム、ゲーム、その他の高性能作業に使用される汎用のコンピュータープログラミング言語であり、C ++とは明らかに異なります。1972年に、Unixオペレーティングシステムで使用するためにDennis Ritchieによって開発されました。


3
gccはpthreadにリンクできませんか?
最近XUbuntu 11.10 64ビットをインストールしましたが、最も単純なpthreadの例をコンパイルするのに問題があります。 コードはpthread_simple.c次のとおりです。 #include <stdio.h> #include <pthread.h> main() { pthread_t f2_thread, f1_thread; void *f2(), *f1(); int i1,i2; i1 = 1; i2 = 2; pthread_create(&f1_thread,NULL,f1,&i1); pthread_create(&f2_thread,NULL,f2,&i2); pthread_join(f1_thread,NULL); pthread_join(f2_thread,NULL); } void *f1(int *x){ int i; i = *x; sleep(1); printf("f1: %d",i); pthread_exit(0); } void *f2(int *x){ int i; i = *x; …
17 c  libraries  gcc  xubuntu 

5
プログラミング言語での実装ではない場合、「システムコール」とはどういう意味ですか?
「システムコール」という用語を理解したいと思います。システムコールは、ユーザー空間アプリケーションからカーネルサービスを取得するために使用されることをよく知っています。 明確にする必要があるのは、「システムコール」と「システムコールのC実装」の違いです。 これは私を混乱させる引用です: Unixライクなシステムでは、そのAPIは通常、システム呼び出しにラッパー関数を提供するglibcなどのCライブラリ(libc)の実装の一部であり、多くの場合、呼び出し元のシステム呼び出しと同じ名前が付けられます。 「彼らが呼ぶシステムコール」とは何ですか?それらのソースはどこですか?コードに直接含めることはできますか? 一般的な意味での「システムコール」はPOSIX定義のインターフェイスにすぎませんが、実際に実装を確認するにはCソースを調べ、実際のユーザー空間からカーネルへの通信が実際にどのように行われるかを確認しますか? 背景メモ:最終的に、各c関数がからのデバイスと対話するかどうかを理解しようとしています/dev。
14 kernel  c  posix  system-calls 


2
USB出力をミラーリングする方法はありますか?
現在、プロジェクトのプログラムを書いています。 これは、点字ディスプレイをUSB経由で接続し、brlttyと呼ばれるプログラムで制御する点字読み取りシステム用です。 このプロジェクトの要件の1つは、複数の点字ディスプレイを接続できることですが、マスターディスプレイだけがシステムを制御できます。 これを行う最も簡単な方法は、プログラムのbrlttyのすべてのインスタンスにコマンドを送信するのではなく、メインUSBに出力されるものを各USBポートにミラ​​ーリングすることだと思いました。 これは可能ですか?
12 usb  c  tty  output  mirror 

2
このCプログラムを実行できないのはなぜですか?
最初の「プロセス」プログラムを実行しようとしていますが、次のエラーが表示されます。 ./fork.c: line 4: syntax error near unexpected token `(' ./fork.c: line 4: `int main()' 私はコードが正しいと確信しています: #include <sys/types.h> #include <stdio.h> int main() { pid_t pid; printf("Hello fork()\n"); switch(pid=fork()) { case -1: printf("Error by fork().....\n"); exit(0); case 0: printf("I'm the child process \n"); break; default: printf("I'm the dad \n"); break; } …
12 c  compiler 

4
vforkまたはforkの子がexit()ではなく_exit()を呼び出す必要があるのはなぜですか?
のマニュアルページからvfork(): vfork()は、子がexecve(2)または_exit(2)を呼び出すまで親が一時停止されるという点でfork()とは異なります。子は、execve()が子によって発行されるまで、スタックを含むすべてのメモリを親と共有します。子は現在の関数から戻ったり、exit()を呼び出したりしてはなりませんが、_exit()を呼び出すことはできます。 なぜ子供が使用する必要があり_exit()、単純に呼び出すのではなくexit()?私は、これは両方に適用され願っていますvfork()とfork()。
12 c  system-calls  fork  exit 

1
どのunistd.hファイルがロードされているかを知るにはどうすればよいですか?
unistd.hUbuntu Linuxにいくつかのファイルがあります。私は1つにしてい/usr/include/asm/unistd.hます。このファイルには次のディレクティブがあります。 # ifdef __i386__ # include "unistd_32.h" # else # include "unistd_64.h" # endif そのフォルダで、それらのファイルを見つけることができます(unistd_32.hおよびunistd_64.h)。 しかし、このディレクティブで始まる/usr/src/linux-headers-2.6.31-22/include/asm-generic/別のunistd.hものがあります: #if !defined(_ASM_GENERIC_UNISTD_H) || defined(__SYSCALL) #define _ASM_GENERIC_UNISTD_H だから、問題は:どのものがロードされているかをどのようにして知ることができますか?Javaでランタイムにそれをチェックする方法はありますか?
11 linux  c  java 

2
Linuxの「time.h」で「timer_t」が定義されているが、OS Xが定義されていない理由
Cのソースコードファイルを読んでいるときに、この宣言を見つけました。(このソースコードはLinuxシステムプログラム用に記述されています。これは非常に重要な情報です) #include <time.h> #include <stdio.h> static timer_t* _interval_timer; ... 最初は「timer_t」についてもっと知りたかった。そこで、ヘッダー情報を取得するために「time.h」をグーグルで検索しました。しかし、「timer_t」については何も言わず、「time_t」についてのみ言及しました。 好奇心で、「mac」コンピューターで「time.h」c標準ライブラリファイルを検索して開きました(ご存じのとおり、/ usr / includeフォルダーにはc標準ライブラリファイルが格納されています)。しかし、このファイルは以前のGoogleのものと同じでした。 最後に、仮想マシンを使用してlinux os(ubuntu)をオンにし、linux c標準ライブラリフォルダー(フォルダーパスはOSXと同じ)の 'time.h'を開きました。予想通り、Linuxの 'time.h'ファイルにはtimer_tの宣言があります。 以下に「timer_t」タイプを宣言するコード行を追加しました。 #if !defined __timer_t_defined && \ ((defined _TIME_H && defined __USE_POSIX199309) || defined __need_timer_t) # define __timer_t_defined 1 # include <bits/types.h> /* Timer ID returned by `timer_create'. */ typedef __timer_t timer_t; …
11 linux  c  darwin 

3
Fedora 14の標準CおよびC ++ライブラリのマニュアルページ
どうすればインストールできますか?現在、man fopen私にくれNo manual entry for fopenます。コンパイラーをインストールし、問題なくビルドできることを確認しました。 更新:これは、Fedora 14で提案された解決策を試したときに得られたものです。 [root@damien agnel]# yum install man-pages libstdc++-docs Loaded plugins: langpacks, presto, refresh-packagekit Adding en_US to language list Setting up Install Process Package man-pages-3.25-1.fc14.noarch already installed and latest version Package libstdc++-docs-4.5.1-4.fc14.x86_64 already installed and latest version Nothing to do [root@damien agnel]# man std::iostream No …

10
Cの開発環境
C開発のための便利で生産的な開発環境のセットアップに関するアイデアを探しています。私が見つかりました。Vimの持つC編集は非常に役立つが、私は提案の広いサンプリングを取得したいと思います。
10 command-line  c  editors  ide 

1
Debian GNU / Hurdでのソースコードのコンパイルは、Debian GNU / Linuxとどのように異なりますか?
iptablesのコンパイル中にlibnetfilter_conntrackgithubからソースをコンパイルしようとしましたが、これらのいずれもHURDソフトウェアリポジトリで利用できず、構成中にエラーが発生しました。iptableslibnetfilter_conntrack checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... no checking whether ln -s works... yes configure: error: Linux only, dude! そして私のカーネルは、 $ uname -a GNU debian 0.9 GNU-Mach 1.8+git20190109-486/Hurd-0.9 i686-AT386 …
9 debian  compiling  c  hurd 

2
`posix_spawn`の出力を取得します
したがって、POSIXを使用してUnix / Linuxでプロセスを実行できますが、プロセスのSTDOUTとSTDERRの両方をファイルに保存/リダイレクトできる方法はありますか?spawn.hヘッダは減速含まposix_spawn_file_actions_adddup2関連見えたが、私は確かに非常にそれを使用する方法はありませんよ。 プロセスが生成します: posix_spawn(&processID, (char *)"myprocess", NULL, NULL, args, environ); 出力ストレージ: ...?
9 c  posix  fork 

1
/ dev / tcpがLinuxに存在しない
C / pro * cコードをUNIXからLinuxに移植しています。コードは次のとおりです。 #define __NFDBIT (8 * sizeof(unsigned long)) #define __FD_SETSIZ 1024 #define __FDSET_LONG (__FD_SETSIZ/__NFDBIT) typedef struct { unsigned long fds_bits [__FDSET_LONG]; } __ernel_fd_set; typedef __ernel_fd_set fd_set_1; int main() { fd_set_1 listen_set; int listen_sd; int socket_id; FD_ZERO(&listen_set); socket_id = t_open("/dev/tcp", O_RDWR|O_NONBLOCK, (struct t_info *) 0); if ( socket_id …
9 linux  c  tcp 


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.