Questions tagged [c]
C is a general-purpose computer programming language used for operating systems, games and other high performance work.
1,330 questions
2
votes
4
answers
166
views
Multithreaded Game Server: Single send() or Many send()s for Game List?
I'm developing a multithreaded game server (C/TCP). I need to send a list of 50-100 available games to a console client.
Option A: Send 50-100 separate messages, using send() for every single ...
1
vote
2
answers
170
views
Where to initialize clients in C server?
I’m writing a multiplayer server in C using sockets and pthreads.
The project is separated by responsibility:
server.c/.h → networking (socket, bind, listen, accept, thread creation)
player.c/.h → ...
1
vote
2
answers
149
views
Should I introduce a controller layer to separate networking from game/player logic in a C server project?
I’m writing a multiplayer server in C using sockets and pthreads.
The project is separated by responsibility:
server.c/.h → networking (socket, bind, listen, accept, thread creation)
player.c/.h → ...
4
votes
6
answers
859
views
Can a language be sound if it doesn't promise safety?
It is said that C's type system is unsound, which means that it has "false negatives", it tells the programmer everything is fine, but then the code fails at runtime. for example, "the ...
-1
votes
1
answer
144
views
How to organize struct-based "methods" in C similar to object-oriented style? [closed]
So I was coding in C for a while now, getting used to language syntax and different styles.
Implemented a couple of simple data structures, algorithms and tried my skills in making Minesweeper clone.
...
1
vote
3
answers
738
views
Should I include the header of the source file always in C/C++?
I have a source file that is used by other sources so it has a header file. If in the header, there are types used that needs inclusion of other headers, I'm better to include this header in its ...
1
vote
3
answers
579
views
Why does C allow escaping apostrophes / single quotation marks in string literals
As far as I can tell, the strings "It's me" and "It\'s me" are always identical. There seems to be no reason when a programmer needs to escape '. Yet, I could not find and ...
1
vote
3
answers
374
views
Is Feeding a Watchdog Timer from an Interrupt Service Routine a Bad Practice?
In an embedded system, I require a watchdog to be able to pass ESD qualifications. Having no experience with watchdogs, I went through this Memfault article. I liked the events "registration"...
2
votes
1
answer
175
views
What architectural connector is a file descriptor?
The software architecture literature has lots of information on software connectors as in component and connector views of architecture.
What kind of connector is a file descriptor? I noticed in the ...
6
votes
4
answers
741
views
Why is there (practically) no 6-byte integer in common usage?
In Postgres, it used to be quite common to use a 4-byte integer auto field for primary keys, until it started becomming somewhat common to run into the 2147483647 limit of 4-byte integers. Now, it's ...
1
vote
3
answers
437
views
Get call graph / path of C with function pointer
I have a C codebase with function calls made through function pointers. I tried using LLVM AST and IR with Python to generate a function call graph, but handling the function pointer calls requires ...
0
votes
2
answers
304
views
What should I consider when determining what `ALLOC_MAX` should be in this type of I/O loop?
For, e.g. determining an amount of memory that is safe to allocate for processing file or device with this type of I/O loop:
HANDLE hFile /* = file open with GENERIC_READ */;
LARGE_INTEGER liSize;
...
1
vote
5
answers
391
views
Anti-pattern? Double header and exposed implementation detail
Consider that I've implemented SHA-256 hashing in C as incrementally updated IUF (init-update-finalize) working context and 3 subroutines. To use it in free-standing environment, or to efficiently use ...
7
votes
2
answers
736
views
When the stack frames become computationally expensive
I've been experimenting with different data structures and algorithms in Python, Java and C to see in what circumstances function/method inlining could bring meaningful gains in terms of the execution ...
3
votes
1
answer
213
views
C++: Good approach to handle libxml2 resource management in a wrapper
I try to write a C++ wrapper to a well-known C library, libxml2. In libxml2, an xmlDocPtr represent an XML document and xmlNodePtr represents a node. An xmlDocPtr contains a root xmlNodePtr and every ...