Desarrollo C/C++, una visión general de la inevitable serie de columnas

Una columna avanzada de desarrollo C/C++ sistemático

Tabla de contenido

1. Columna avanzada de desarrollo sistemático c/c++

        1.1 Características de la columna

        1.2 Resumen de los puntos técnicos involucrados

2. Puntos técnicos del tema e índice de publicación de blog

        2.1 Temas de funciones (5 artículos)

        2.2 Temas de categoría (8 artículos)

        2.3 Gestión de memoria (5 artículos)

        2.4 Programación de plantillas (10 artículos)

        2.5 Operadores (4 artículos)

        2.6 String y E/S de entrada y salida (6 artículos)

        2.7 Multihilo y corrutinas (6 artículos)

        2.8 Macros y aserciones (2 artículos)

3. Casos prácticos e índice de publicaciones en el blog

        3.1 Diseño de comunicación (8 artículos)

        3.2 Monitoreo de recursos (6 artículos)

        3.3 Interfaz de servicio (10 artículos)

        3.4 Sistema de registro (3 artículos)

        3.5 Servicios de ingeniería (9 artículos)


        La columna de caso de combate real y desarrollo avanzado de c/c++ está llegando a su fin de acuerdo con mi idea original. Ahora clasifico toda la columna, organizo las publicaciones de blog de cada capítulo y construyo un índice, para que los fanáticos y lectores puedan leer y saltar Espero que todos puedan ganar algo después de leer la publicación de blog que escribí para esta columna.

1. Columna avanzada de desarrollo sistemático c/c++

        Soy un beneficiario de las publicaciones de blog de CSDN, especialmente cuando comencé a trabajar. En ese momento, aquellos que podían escribir blogs técnicos en él a menudo eran líderes técnicos que habían trabajado durante muchos años y tenían mucha experiencia práctica en proyectos. Había relativamente pocas publicaciones de blog, pero los puntos técnicos estaban muy enfocados, por lo que no tiene que preocuparse por leer esas publicaciones de blog. En la actualidad, en CSDN, a menudo se ve abrumado por este portador de blog de conocimiento fragmentado. Muchas publicaciones de blog técnico son registros de aprendizaje de los estudiantes. Ahora lo uso como un contestador de preguntas con más frecuencia.

        La fragmentación del conocimiento hará que el conocimiento adquirido se fragmente cada vez más, ya no es un estudio profundo y sistemático, sino un estudio fragmentado, y los fragmentos carecen de correlación mutua y sistematicidad. Con el "conocimiento de comida rápida" de Internet convirtiéndose en la superficie de contacto principal para la instilación del conocimiento de todos, la búsqueda gradualmente unilateral de la amplitud del conocimiento y la pérdida de la búsqueda de la profundidad del conocimiento pueden dar como resultado una comprensión incompleta del conocimiento, al igual que el aprendizaje. de "conocimiento superior". Al mismo tiempo, el aprendizaje fragmentado del conocimiento hará que las personas tengan una sensación de sobrecarga de información y ansiedad.

        Por lo tanto, cuando escribo mi propio blog, espero brindarles a los lectores que lean mi blog un conocimiento completo, factibilidad comprobada, publicaciones de blog técnicas con requisitos de entorno de compilación, configuración de proyectos y código fuente completo, etc. consumen menos tiempo y desvíos.

        1.1 Características de la columna

        Esta es una columna de conocimientos sistemáticos sobre el desarrollo avanzado de c/c++. Explica principalmente los puntos técnicos de c/c++ utilizados en proyectos reales, por lo que no implicará problemas algorítmicos menores, como la clasificación y las preguntas de las entrevistas. Se centra principalmente en la mayoría de c/c++ Un punto técnico a largo plazo utilizado en el desarrollo de C++.

        La llamada sistematicidad se encuentra principalmente en dos aspectos:

        [1] Esta columna tomará los puntos técnicos involucrados en el desarrollo de proyectos c/c++ como tema y luego llevará a cabo debates multifacéticos en torno a cada tema, generalmente centrándose en este tema e intercalando otros puntos de conocimiento relacionados.

        【2】Estas publicaciones de blog temáticas comenzarán a partir de los principios de los puntos de conocimiento, descripciones, API y aplicaciones, y brindarán entornos de compilación específicos, requisitos de compilación, código completo que se puede compilar y resultados de demostración.

        Esta columna es una columna avanzada para el desarrollo de c/c++, que está orientada al desarrollo de proyectos reales, por lo que no involucrará la explicación gramatical de c/c++, ni le enseñará cómo lidiar con entrevistas y preguntas, etc. Principalmente describe cada uno de los puntos técnicos de c/c++, combinados con casos de código fuente, explica estos puntos técnicos y las funciones, clases y bibliotecas estándar implicadas, cómo se denominan, utilizan y combinan para diseñar nuevas aplicaciones en el proyecto.

        1.2 Resumen de los puntos técnicos involucrados

        La columna avanzada de desarrollo C/C++ involucrará algunos temas y puntos de conocimiento:

  1. Diseño de funciones: comprensión profunda de las definiciones de funciones, parámetros de funciones, punteros de funciones y otros puntos de conocimiento, cómo diseñar y optimizar la eficiencia de ejecución de funciones.

  2. Diseño de clases: cómo diseñar funciones básicas de miembros de clases, definir variables de miembros, discutir cómo diseñar operadores de clases, funciones virtuales, sistemas de herencia, etc.

  3. Programación de plantillas: comprenda el conocimiento básico de la programación genérica, analice las habilidades de diseño de plantillas de funciones y plantillas de clases, y analice la estrecha relación y el mecanismo de implementación de la programación genérica y las bibliotecas estándar.

  4. Programación y algoritmos genéricos: aprenda cómo la programación genérica diseña estructuras de datos de uso común como contenedores estándar, estudie la combinación de contenedores como la secuencia y la asociación en la biblioteca estándar con algoritmos como la clasificación y la búsqueda, y cómo usarlos para hacer que el diseño del programa sea más eficiente y sencillo.

  5. Programación simultánea y de subprocesos múltiples: el uso de la programación simultánea y de subprocesos múltiples puede mejorar la eficiencia del programa; debe comprender conceptos relacionados, como la sincronización de subprocesos, la exclusión mutua, los bloqueos, las corrutinas y los tipos atómicos.

  6. Administración y optimización de la memoria: debe prestar atención a problemas como pérdidas de memoria y punteros salvajes, y comprender el mecanismo de administración de memoria y los métodos de optimización de memoria de C++, como la tecnología de grupo de memoria de STL.

  7. Ingenio del código: comprenda la influencia de las macros, las aserciones, los operadores, los punteros, etc. en la optimización del código correspondiente y cómo ajustar iterativamente el código desde la apariencia básica de un negocio sencillo hasta un método de ejecución corto, elegante y eficiente.

  8. Interacción del sistema: comprenda los conocimientos básicos del funcionamiento del sistema, como la gestión de procesos, la gestión de memoria, el sistema de archivos, el funcionamiento de E/S, la supervisión de recursos de TI, etc.

  9. Use bibliotecas y marcos de trabajo de terceros: use bibliotecas y marcos de trabajo de terceros de uso común, aprenda la interacción entre C/C++ y bibliotecas de terceros y lenguajes compilados, y analice las llamadas de la interfaz API del servicio, la comunicación de red, etc.

  10. Todo sirve al proyecto: no tiene mucho que ver con el negocio, pero se explican algunos contenidos esenciales del sistema, cómo compilar bibliotecas dinámicas y estáticas, realizar la gestión y programación de bibliotecas, registrar la operación y el mantenimiento del sistema de monitoreo del sistema, monitorear los recursos informáticos, etc.

2. Puntos técnicos del tema e índice de publicación de blog

        2.1 Temas de funciones (5 artículos)

        [1] desarrollo c/c++, casos de uso inevitables de punteros de función

Desarrollo de C/c++, casos de uso inevitables de punteros de función El caso de prueba de desarrollo de código fuente muestra los diversos puntos de conocimiento involucrados en la publicación del blog https://blog.csdn.net/py8105/article/details/128985506         [2] c/c++ desarrollo, práctica de parámetros de función inevitable

Desarrollo de C/c++, práctica de parámetro de función inevitable_py_free-IOT Intelligent Blog-CSDN Desarrollo de Blogc /c++, práctica de parámetro de función inevitable, análisis de varios puntos de conocimiento involucrados en parámetros de función y explicación del caso del código fuente https: //blog.csdn.net/py8105 /article/details/128996490         [3] C/C++, función de operación de archivo C++

Función de operación de archivo C/C++, C++_py_free-IOT Intelligent Blog-CSDN Blog Función de operación de archivo C++, que explica las funciones estándar, no estándar, de flujo y otras funciones de archivo de acceso, operación y administración de archivos de operación C++. https://blog.csdn.net/py8105/article/details/127699775         [4] Los contenedores ordenados de C/C++ y las funciones de clasificación comparan el diseño de funciones al aplicar tipos de datos definidos por el usuario

El contenedor ordenado y la función de clasificación en c/c ++ se comparan con el diseño de la función cuando se aplican tipos de datos definidos por el usuario. https://blog.csdn.net/py8105/article/details/127086394         [5] C/ Desarrollo C++, aplicación de punto de tecnología lambda C++

Desarrollo C/C++, punto de tecnología lambda de C++ application_c++ lambda function_py_free-IOT Intelligent Blog-CSDN Blog Aplicación de punto de tecnología lambda de C++, introducción a la sintaxis básica de lambda, ejemplos de aplicación, comparación con functors, punteros de función e influencias STL, problemas que deben resolverse atención al uso real, etc. https://blog.csdn.net/py8105/article/details/127725528

        2.2 Temas de categoría (8 artículos)

        [1] Desarrollo c/c++, tipo de clase personalizado inevitable (parte 1) Casos de implementación de funciones básicas de uso común

Desarrollo de c/c++, tipos de clases personalizados inevitables (Parte 1) Casos de implementación de funciones básicas de uso común_ejemplos de funciones de c++_py_free-IOT Blog inteligente-CSDN Blog Desarrollo de c/c++, tipos de clases personalizadas inevitables (Parte 1) Casos de implementación de funciones básicas de uso común, un caso de implementación de clase similar a la clase String que incluye constructores predeterminados, constructores ordinarios, constructores de copia, destructores y funciones de miembro básicas de función de asignación https: //blog.csdn .net/py8105/article/details/128867307         [2] c/c++ desarrollo, tipo de clase personalizado inevitable (Parte 2) Relación de combinación de clases

Desarrollo c/c++, tipos de clases personalizados inevitables (Parte 2) Relación de combinación de clase_py_free-IOT Blog inteligente-CSDN Blog Relación de combinación de clase, que explica varias relaciones de combinación de clases, declaración previa, variables miembro de tipo de clase, relaciones de amistad, herencia y derivación , clases anidadas, clases locales y otros puntos de conocimiento relacionados con la combinación de clases y demostraciones y códigos de demostración. https://blog.csdn.net/py8105/article/details/129582001         [3] Desarrollo c/c++, tipos de clase personalizados inevitables (Parte 3) Clases y funciones virtuales

Desarrollo de C/c++, tipos de clases personalizados inevitables (Parte 3) Clases y funciones virtuales_py_free-IOT Intelligent Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/129615179         [4] Desarrollo c/c++, tipos de clase personalizados inevitables (Parte 4). Diseño de clases y miembros

Desarrollo C/C++, tipos de clase personalizados inevitables (Parte 4) Clase y diseño de miembros_py_free-IOT Intelligent Blog-CSDN Blog Desarrollo C/C++, tipos de clases personalizados inevitables (Parte 4) Diseño de clases y miembros, explicación de las variables de miembros y publicación -Planificación del diseño de funciones de miembros bajo el diseño de clase, el uso combinado de miembros de clase y varias palabras clave específicas y escenarios de negocios específicos, y dar código fuente y demostración. https://blog.csdn.net/py8105/article/details/129634949         [5] Desarrollo c/c++, tipos de clases personalizados inevitables (Parte 5), uso y diseño de clases

desarrollo c/c++, tipos de clases personalizados inevitables (Parte 5) usando y diseño de clases_py_free-IOT Intelligent Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/129662021         [6] Desarrollo c/c++, tipo de clase personalizado inevitable (Parte 6). Enumeración de clase especial

desarrollo c/c++, tipo de clase personalizada inevitable (Parte 6) Clase especial enum_py_free-IOT Intelligent Blog-CSDN Blog Dar demo y código fuente. https://blog.csdn.net/py8105/article/details/129676168        [7] Desarrollo c/c++, tipos de clases personalizados inevitables (Parte 7).

desarrollo c/c++, tipos de clase personalizados inevitables (séptima parte) ... Algunas piezas de plata, presenta la influencia de algunas palabras clave que aparecen en cada versión estándar en el diseño de clase, explica los puntos de conocimiento de noexcept, clase vacía, no_unique_address, explícito, constexpr, etc., y dar demostraciones y códigos fuente. https://blog.csdn.net/py8105/article/details/129685524         [8] Desarrollo c/c++, tipos de clase personalizados inevitables (Parte 8) Manejar adecuadamente las excepciones para las clases

Desarrollo c/c++, tipos de clase personalizados inevitables (Parte 8). Manejar correctamente las excepciones para las clases https://blog.csdn.net/py8105/article/details/129738592

        2.3 Gestión de memoria (5 artículos)

        [1] Desarrollo C/C++, gestión de memoria inevitable (Parte 1) - esas cosas sobre la memoria

Desarrollo de C/C++, administración de memoria inevitable (Parte 1) - Memory Things_py_free-IOT Smart Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/129180213         [2] Desarrollo en C/C++, administración de memoria inevitable (Parte 2): restrinja la memoria escapada

Desarrollo de C/C++, administración de memoria inevitable (parte 2): restricciones para escapar de memory_py_free-IOT Intelligent Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/129197714

        [3] Desarrollo C/C++, gestión de memoria inevitable (Parte 3) - memoria del plan

Desarrollo de C/C++, gestión de memoria inevitable (parte 3) - Planificar memoria_py_free-IOT Intelligent Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/129210274

        [4] Desarrollo C/C++, gestión de memoria inevitable (parte 4) - alternativa de puntero inteligente

Desarrollo de C/C++, administración de memoria inevitable (parte 4): alternativas de puntero inteligente_py_free-IOT Smart Blog-CSDN Blog Desarrollo de C/C++, administración de memoria inevitable (parte 3): selección de puntero inteligente, introducción de punteros inteligentes auto_ptr, unique_ptr, shared_ptr, débil_ptr y clases de asignación de puntero inteligente sin propietario, enable_shared_from_this, bad_weak_ptr, default_delete para admitir punteros inteligentes y opciones de aplicación de puntero inteligente. https://blog.csdn.net/py8105/article/details/129239616

        [5] Desarrollo C/C++, gestión de memoria inevitable (Parte 5) - C++ y recolección de basura Pescando la luna en el agua

Desarrollo en C/C++, gestión de memoria inevitable (parte 5) - C++ y recolección de basura Pescando la luna en el agua_c++ Garbage Collection_py_free-IOT Blog inteligente-CSDN Blog Desarrollo en C/C++, gestión de memoria inevitable (parte 5)-c++ y basura colección, c ++ 11 admite la recolección mínima de basura a c ++ 23 y luego se retira, c ++ y la recolección de basura aún son difíciles de alcanzar. https://blog.csdn.net/py8105/article/details/129248764

        2.4 Programación de plantillas (10 artículos)

       [1] desarrollo c/c++, práctica inevitable de programación de plantillas (Parte 1) - plantilla de función y plantilla de clase

Desarrollo de C/c++, práctica de programación de plantillas inevitables (Parte 1): plantilla de función y clase template_py_free-IOT Intelligent Blog-CSDN Blog desarrollo de c/c++, práctica de programación de plantillas inevitables (Parte 1), Introducción a los puntos de conocimiento y puntos de desarrollo de las plantillas de funciones y plantillas de clase, y proporcione los resultados prácticos de las pruebas de código fuente https://blog.csdn.net/py8105/article/details/129007643         [2] desarrollo c/c++, plantillas inevitables Práctica de programación (Parte 2): puntos clave de la plantilla Programación

Desarrollo C/C++, práctica inevitable de programación de plantillas (Parte 2) -Programación de plantillas Essentials_py_free-IOT Intelligent Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/129040834         [3] Desarrollo c/c++, práctica inevitable de programación de plantillas (Parte 3): plantillas y polimorfismo, punteros y metaprogramación

Desarrollo en C/c++, práctica inevitable de programación de plantillas (Parte 3): plantillas y polimorfismo, punteros y metaprogramación La https://blog.csdn.net/py8105/article/details/129067623         [4] Desarrollo c/c++, práctica inevitable de programación de plantillas (Parte 4): contenedor de secuencias y su aplicación

Desarrollo de C/C++, Práctica inevitable de programación de plantillas (Parte 4) - Contenedor de secuencia y su aplicación_py_free-IOT Intelligent Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/129098688         [5] desarrollo c/c++, práctica inevitable de programación de plantillas (Parte 5): contenedores asociativos y su aplicación

Desarrollo de C/C++, Práctica inevitable de programación de plantillas (Parte 5 ) -Contenedores asociados y aplicación_py_free-IOT Smart Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/129108158         [6] Desarrollo c/c++, práctica inevitable de programación de plantillas (Parte 6): algoritmo genérico y aplicación

Desarrollo de C/c++, práctica inevitable de programación de plantillas (Parte 6): algoritmo genérico y application_py_free-IOT Intelligent Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/129112619         [7] desarrollo c/c++, práctica inevitable de programación de plantillas (parte 7): plantilla de clase personalizada y su aplicación

Desarrollo de C/c++, práctica de programación de plantillas inevitables (parte 7): plantilla de clase personalizada y plantilla application_cpp programación_py_free-IOT Blog inteligente-CSDN Desarrollo de blog c /c++, práctica de programación de plantillas inevitables (Parte 7), programación de plantillas, aplicación y diseño de plantillas personalizadas , construyendo plantillas de árboles binarios, expandiendo la aplicación funcional de plantillas de árboles binarios, verificando la disponibilidad de plantillas a través de códigos de prueba y dando pruebas y códigos fuente. https://blog.csdn.net/py8105/article/details/129150798         [8] desarrollo c/c++, práctica inevitable de programación de plantillas (parte 8): adaptación y aplicación del paquete de plantillas de biblioteca estándar

Desarrollo de C/c++, práctica inevitable de programación de plantillas (Parte 8): adaptación del paquete de plantillas de biblioteca estándar y application_py_free-IOT Intelligent Blog-CSDN Blog Estas plantillas se aplicarán a una clase de registro, que es independiente de subprocesos y tiene una clase de subproceso de administración de disco de subclase, que se utiliza para implementar la inspección del espacio restante en el disco y la eliminación de archivos de registro antiguos. https://blog.csdn.net/py8105/article/details/129170995        [9] desarrollo c/c++, práctica inevitable de programación de plantillas (Parte 9) - nuevo contenedor de secuencias de c++11

Desarrollo de C/c++, práctica inevitable de programación de plantillas (Parte 9) - nuevo contenedor secuencial de c++11_c++11 new container_py_free-IOT Blog inteligente-CSDN Desarrollo c/c++, prácticas de programación de plantillas inevitables que se deben evitar (Parte 9) - El nuevo contenedor de secuencias de C++11, std::array container, es esencialmente una plantilla de estructura adaptada a la matriz, que puede considerarse como una matriz especial que admite iteradores y comprobaciones de seguridad; std::forward_list es una plantilla de clase de dos parámetros de plantilla T y std::allocator Es una lista enlazada individualmente y básicamente proporciona las mismas funciones que std::list. Proporcione código fuente de ejemplo y resultados de demostración. https://blog.csdn.net/py8105/article/details/129427681         [10] desarrollo c/c++, práctica inevitable de programación de plantillas (Parte 10) - elemento de construcción in situ c++11 (emplace)

Desarrollo de C/c++, práctica de programación de plantillas inevitables (Parte 10)-c++11 elemento de construcción in situ (emplace)_py_free-IOT Blog inteligente-CSDN Desarrollo de Blog de c/c++, práctica de programación de plantillas inevitables (Parte 10)-c+ +11 elemento de construcción in situ (emplace), introduce el elemento de construcción in situ (emplace) de la función de miembro modificador del contenedor, lo compara con la función modificadora anterior del contenedor y proporciona el efecto de demostración y el código fuente. https://blog.csdn.net/py8105/article/details/129452196

        2.5 Operadores (4 artículos)

        [1] desarrollo c/c++, operador operador inevitable (Parte 1), sobrecarga de operadores

desarrollo c/c++, operador inevitable operador (Parte 1), sobrecarga de operadores_los operadores no miembros requieren parámetros de tipo de clase o tipo de enumeración_py_free-IOT Intelligent Blog-CSDN Blogc/c++ desarrollo, no Operador evitable operador (Parte 1), sobrecarga de operadores, integral expone varios operadores convencionales, operadores y operadores especiales, y el diseño de la sobrecarga del operador, y brinda códigos de demostración y resultados de demostración. https://blog.csdn.net/py8105/article/details/129461618         [2] Desarrollo c/c++, operador operador inevitable (Parte 2), ¿cuánto sabe sobre operadores de asignación?

desarrollo c/c++, operador operador inevitable (parte 2), cuánto sabe sobre operadores de asignación Cuánto sabe sobre operadores de asignación, presente los operadores de asignación más utilizados, explique la asignación directa, copiar asignación, mover asignación, asignación compuesta y resolución de llamada de operador de asignación, y dar código fuente de demostración y demostración. https://blog.csdn.net/py8105/article/details/129473922         [3] desarrollo c/c++, operador operador inevitable (Parte 3), clase y operador

desarrollo c/c++, operador inevitable operador ( Parte 3), clase y operador Exponer exhaustivamente la asociación e implementación de clases y varios operadores, y dar demostraciones y códigos fuente completos. https://blog.csdn.net/py8105/article/details/129490566         [4] desarrollo c/c++, operador operador inevitable (Parte 4), hacer un buen uso de los operadores

desarrollo c/c++, operador operador inevitable (Parte 4), use bien el operador Buenos operadores, los operadores son muy comunes, las trampas no son comunes, explique la combinación y aplicación de operadores y varias expresiones, y proporcione demostraciones y códigos fuente. https://blog.csdn.net/py8105/article/details/129526219

        2.6 String y E/S de entrada y salida (6 artículos)

        [1] Desarrollo C/C++, cadenas inevitables (Parte 1). Array de bytes

Desarrollo C/C++, cadenas inevitables (Parte 1).Byte array_c define byte arrays_py_free-IOT Intelligent Blog-CSDN Blog Desarrollo C/C++, cadenas inevitables (Parte 1).Array de bytes. La biblioteca estándar implementa la función de cadena principalmente a través de la plantilla de clase std::basic_string similar al contenedor std::vector, que proporciona clases especializadas para varios tipos de caracteres, como usar std::string = std:: basic_string; La publicación del blog también expone std::basic_string—_view, cadena de bytes terminada en nulo, cadena ancha terminada en nulo, cadena multibyte terminada en nulo y otros conjuntos de funciones, y brinda un código de demostración. https://blog.csdn.net/py8105/article/details/129763021         [2] Desarrollo C/C++, cadenas inevitables (Parte 2) Funciones de procesamiento de caracteres y cadenas STL

Desarrollo C/C++, cadenas inevitables (Parte 2) Cadenas STL y funciones de procesamiento de caracteres_stl flipping strings_py_free-IOT Blog inteligente-CSDN Blog Desarrollo C/ C++, cadenas inevitables (Parte 2) Procesamiento de caracteres STL, presenta punteros de caracteres, matrices de caracteres y sus diferencias, presenta el conjunto de funciones de procesamiento de cadenas proporcionado por la biblioteca estándar, el conjunto de funciones de procesamiento de caracteres y la clase personalizada MyString demuestra cómo usar estos conjuntos de funciones y brinda el código fuente de demostración. https://blog.csdn.net/py8105/article/details/129776842         [3] Desarrollo C/C++, entrada/salida inevitable de E/S (Parte 1). Procesamiento de E/S de flujo laminar del dispositivo

Desarrollo de C/C++, entrada/salida de E/S inevitable (parte 1). Procesamiento de E/S laminar de dispositivo_py_free-IOT Intelligent Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/129795505         [4] Desarrollo C/C++, entrada/salida inevitable de E/S (Parte 2). Procesamiento de E/S de flujo de archivos

Desarrollo de C/C++, entrada/salida de E/S inevitable (Parte 2).Procesamiento de E/S de flujo de archivos_py_free-IOT Blog inteligente-CSDN Blog Desarrollo de C/C++, entrada/salida de E/S inevitable (Parte 2).Procesamiento de E/S de flujo de archivos, introduce el formato de archivo , gestión de formato, estado de flujo, implementación y gestión de búfer, entrada y salida formateada, entrada y salida sin formato de las tres clases de E/S de flujo de archivos de fstream, ofstream e ifstream, y proporciona un código de demostración completo. https://blog.csdn.net/py8105/article/details/129809162         [5] Desarrollo C/C++, entrada/salida inevitable de E/S (Parte 3) Flujo de cadenas (flujo de memoria) Procesamiento de E/S

Desarrollo C/C++, inevitable entrada/salida de E/S (Parte 3) Flujo de cadenas (flujo de memoria) Procesamiento de E/S Salida (Parte 3) Flujo de cadenas (flujo de memoria) Procesamiento de E/S, introduce el sistema de herencia, modo de búfer, formato abierto, desarrollo y la aplicación de la serie stringstream de stringstream/istringstream/ostringstream, y proporciona un código fuente de demostración completo. https://blog.csdn.net/py8105/article/details/129830327         [6] Desarrollo C/C++, entrada/salida inevitable de E/S (Parte 4). Breve descripción de la implementación de c

Desarrollo de C/C++, entrada/salida inevitable de E/S (parte 4) Breve introducción a la implementación de C_py_free-IOT Intelligent Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/129909470

        2.7 Multihilo y corrutinas (6 artículos)

        [1] Desarrollo C/C++, subprocesos múltiples inevitables (Parte 1). La programación concurrente multiplataforma está muy atrasada

Desarrollo de C/C++, subprocesos múltiples inevitables (Parte 1). La programación concurrente multiplataforma está muy atrasada La programación concurrente está muy atrasada, presenta cómo construir un compilador que admita c ++ 11 y superior, y explica el contenido Función /c++ pthread establecida antes del estándar c++11 y después del estándar c++11 Diferentes aplicaciones y casos de clase de subprocesos para programación multiproceso, y expone la clase std::jthread propuesta por el estándar c++20. https://blog.csdn.net/py8105/article/details/129278973         [2] Desarrollo C/C++, subprocesos múltiples inevitables (Parte 2).thread y su biblioteca de soporte

Desarrollo C/C++, subprocesos múltiples inevitables (Parte 2). El subproceso y su biblioteca de soporte Biblioteca https://blog.csdn.net/py8105/article/details/129305084         [3] Desarrollo C/C++, subprocesos múltiples inevitables (Parte 3). Coroutines y sus bibliotecas de soporte

Desarrollo C/C++, subprocesos múltiples inevitables (Parte 3) Coroutine y su biblioteca de soporte_c coroutine library_py_free-IOT Blog inteligente-CSDN Blog Desarrollo C/C++, subprocesos múltiples inevitables (Parte 3) Coroutines y sus bibliotecas de soporte, introduciendo los diversos tipos relacionados en la biblioteca de soporte de rutinas del estándar c++20, y explicando el tiempo de compilación y el soporte de tiempo de ejecución de las corrutinas que proporcionan. Profundice en la aplicación de las palabras clave coroutine handle, coroutine awaitable body, coroutine sin operación y co_await, co_yield, co_return y verifique la aplicabilidad a través de pruebas de código fuente. https://blog.csdn.net/py8105/article/details/129336892         [4] Desarrollo C/C++, subprocesos múltiples inevitables (Parte 4). La maravillosa colisión de subprocesos y funciones

Desarrollo C/C++, subprocesos múltiples inevitables (Parte 4) La maravillosa colisión entre subprocesos y funciones También describe con más detalle cómo el envoltorio de reenvío de funciones std::bind combina funciones de miembros de clase, operadores, funciones de miembros de objetos anidados, etc. con subprocesos de subprocesos para implementar hábilmente la lógica de subprocesos múltiples. Proporcione información de demostración completa y código fuente. https://blog.csdn.net/py8105/article/details/129345145         [5] Desarrollo C/C++, subprocesos múltiples inevitables (Parte 5). Realice su propia clase de encapsulación de subprocesos

Desarrollo C/C++, subprocesos múltiples inevitables (Parte 5) Realice su propia encapsulación de subprocesos class_c++ clase de subprocesos encapsulation_py_free-IOT Blog inteligente-CSDN Blog Desarrollo C/C++, subprocesos múltiples inevitables (Parte 4) Implemente su propia clase de encapsulación de subprocesos, cómo encapsular clase de subprocesos basada en pthread_t de c++98, cómo encapsular la clase de subprocesos basada en std::thread de la biblioteca estándar de c++11 y mantenerla coherente con la versión de c++98, y finalmente combinar las dos versiones de la clase de subproceso en una versión de subproceso mythread, y proporcione el proceso de implementación, los resultados de la demostración y el código fuente. https://blog.csdn.net/py8105/article/details/129363133         [6] Desarrollo C/C++, subprocesos múltiples inevitables (Parte 6). Clase de encapsulación de grupo de subprocesos

Desarrollo C/C++, subprocesos múltiples inevitables (parte 6) Encapsulación de grupo de subprocesos Class_py_free-IOT Intelligent Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/129391609

        2.8 Macros y aserciones (2 artículos)

        [1] desarrollo c/c++, casos de uso inevitables de definiciones de macros

Desarrollo de C/c ++, caso de uso de definición de macro inevitable_py_free- IOT Intelligent Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/128969681         [2] Desarrollo de C/C++, afirmación de c/c++ ( aserción de preprocesamiento, aserción de compilación, aserción en ejecución)

Desarrollo C/C++, aserción c/c++ (afirmación de preprocesamiento, aserción de compilación, aserción en ejecución)_c++ aserción_py_free-IOT Intelligent Blog-CSDN Aserción de blog c/c++ (afirmación de preprocesamiento, aserción de compilación, aserción en ejecución) https: //blog.csdn . net/py8105/artículo/detalles/127052832

3. Casos prácticos e índice de publicaciones en el blog

        3.1 Diseño de comunicación (8 artículos)

        [1] Desarrollo C/C++, implementación de comunicación UDP multicast (c++)

Desarrollo de C/C++, implementación de comunicación de multidifusión udp (c++)_py_free-IOT Intelligent Blog-CSDN blog Código fuente del caso de implementación de modo de multidifusión UDP https://blog.csdn.net/py8105/article/details/100180383        【2】 C/C++ desarrollo, utilizando epoll para crear su propio servicio en segundo plano, para lograr la comunicación de red con cada cliente (incluido el código de muestra)

Desarrollo C/C++, use epoll para crear su propio servicio en segundo plano, realice la comunicación de red con cada cliente (incluido el código de muestra) https ://blog.csdn.net/py8105/article/details/126970247        [3] Desarrollo C/C++, basado en el módulo de servicio de comunicación tcp-socket de epoll

Desarrollo C/C++, servicio de comunicación tcp-socket basado en epoll module_epoll_py_free en c++ windows, por lo que es necesario reducir la dependencia de la biblioteca de terceros.Dado que la comunicación tcp-socket original llama a la biblioteca de terceros, voy a escribir un módulo de servicio para el proyecto de código abierto que satisfaga brevemente las necesidades del proyecto. Dado que el servidor necesita personalizar los requisitos de comunicación de enlace descendente para cada cliente, se utiliza epoll para conocer claramente el manejo de la comunicación específica. https://blog.csdn.net/py8105/article/details/105973950         [4] c/c++ desarrollo, c++ inevitable caso de desarrollo de comunicación TCP/Socket

desarrollo c/c++, c++ inevitable caso práctico de desarrollo de comunicación TCP/Socket_c++ tcp library_py_free-IOT Intelligent Blog-CSDN Blog desarrollo c/c++, c++ inevitable caso práctico de desarrollo de comunicación TCP/Socket, Guía paso a paso, cómo desarrollar un TCP/Socket programa de servicio de comunicación, cómo realizar el soporte multicliente, cómo proporcionar eficiencia de comunicación, cómo codificar y decodificar y cómo realizar la transmisión de datos de bloques estructurados, etc., y proporcionar el código fuente completo para que todos lo aprendan. https://blog.csdn.net/py8105/article/details/128903850         [5] desarrollo c/c++, refactorización de código inevitable (basado en el caso de desarrollo de comunicación TCP/Socket anterior)

Desarrollo c/c++, práctica inevitable de refactorización de código (basado en el caso anterior de desarrollo de comunicación TCP/Socket)_c ++ code refactoring_py_free-IOT Intelligent Blog-CSDN Blog https:/ /blog.csdn.net/py8105/article/details/128933842         [6] Desarrollo C/C++, comunicación IoT: cómo diseñar brevemente un protocolo de aplicación empresarial basado en TCP/IP (caso c++)

Desarrollo C/C++, comunicación IoT: cómo diseñar brevemente un protocolo de aplicación empresarial basado en TCP/IP (caso c++)_c desarrollo de protocolo de red cómo diseñar_py_free-IOT Intelligent Blog-CSDN Blog Cómo diseñar brevemente un protocolo de aplicación empresarial basado en TCP / IP (caso c++) https://blog.csdn.net/py8105/article/details/126749510         [7] Desarrollo C/C++, ejemplo de comunicación de interfaz serial asíncrona (uart)

Desarrollo C/C++, ejemplo de comunicación de interfaz serial asíncrona (uart) Sin embargo, al realizar la comunicación serial de arm recientemente, descubrí que ctb aún es un poco complicado, así que pensé en construir una interfaz de comunicación serial relativamente simple, que depende principalmente de termios.h de linux. La estructura de termios es una interfaz estándar definida en la especificación POSIX. Al configurar mediante el uso de valores y llamadas a funciones en estructuras de datos de tipo termios, puede controlar la interfaz de la terminal. Usted mismo puede solicitar más descripciones... https://blog.csdn.net/py8105/article/details/105813168        [8] Desarrollo C/C++, comunicación de subprocesos c++: creación de un canal alternativo de transmisión de datos entre subprocesos

Desarrollo C/C++, comunicación de subprocesos c++: creación de un canal de transmisión de datos alternativo entre subprocesos Notificaciones, notificaciones de señales, canalizaciones, etc., el siguiente es un método de comunicación de subprocesos que uso a menudo y utilizo en la práctica de proyectos. colas para implementar una clase de cola de variables globales o variables de hilo. Es decir, la clase de monómero a menudo puede lograr el efecto de las variables globales. A través de la clase de monómero + contenedor de cola + bloqueo de subprocesos, el canal de datos entre subprocesos se puede construir rápidamente para lograr el propósito de una comunicación segura. https://blog.csdn.net/py8105/article/details/105593421

        3.2 Monitoreo de recursos (6 artículos)

        【1】Desarrollo C/C++, crear restricciones de licencia de software basadas en disco o tarjeta de red (c++)

Desarrollo C/C++, cree restricciones de licencia de software basadas en disco o tarjeta de red (c++)_c++ license_py_free-IOT Intelligent Blog-CSDN Blog Desarrollo C/C++, cree restricciones de licencia de software basadas en disco o tarjeta de red (c++), cree software basado en disco o tarjeta de red El método de licencia adopta el cifrado simétrico, es decir, el cifrado y el descifrado usan la misma clave, y el algoritmo de cifrado es autodefinido, y el software tiene derechos de autor para que solo pueda ejecutarse en una máquina adecuada. https://blog.csdn.net/py8105/article/details/90229088         [2] c/c++ realiza la adquisición de datos estadísticos de cada disco bajo Linux

c/c++ realiza la adquisición de datos estadísticos de cada disco bajo la descripción de Linux, lee la información de datos requerida de él. https://blog.csdn.net/py8105/article/details/127144417         [3] c/c++ realiza la adquisición de varios datos de estadísticas de memoria en Linux

c/c++ realiza la adquisición de varios datos estadísticos de memoria bajo linux_linux obtiene parámetros de memoria c++_py_free identifique el formato del contenido y la descripción del campo del archivo y lea la información de datos         requerida

c/c++ realiza la adquisición de cada información de estadísticas de la CPU en linux_linux obtiene los parámetros de la CPU . net/py8105/article/details/127141041         [5] c/c++ implementa Linux La siguiente captura de tráfico de red

c/c++ realiza la captura de varios tráficos de red bajo Linux . net/py8105/article/details/127135477         【6】C/C++ Development, cómo c/c++ se da cuenta del caso de administrar sus propios archivos de registro de acuerdo con el espacio en disco

Desarrollo de C/C++, cómo c/c++ se da cuenta del caso de administrar sus propios archivos de registro de acuerdo con el espacio en disco Diseñar un módulo de función de administración de disco, de acuerdo con el directorio de disco especificado, como win especificado {C, D}, linux especificado {/ }, etc., para obtener el valor del espacio total en disco y el espacio restante, y luego determinar si eliminar el archivo de registro en función del espacio de almacenamiento. Mantenga el espacio necesario para el funcionamiento del sistema. Proporcione una API para eliminar registros, de acuerdo con el directorio y la extensión de archivo especificados, para eliminar archivos de registro antiguos. https://blog.csdn.net/py8105/article/details/126947879

        3.3 Interfaz de servicio (10 artículos)

        【1】desarrollo c/c++, caso de desarrollo de acceso a archivos inevitable

desarrollo c/c++, caso de desarrollo de acceso a archivos inevitable_py_free-IOT Intelligent Blog- CSDN fgets, etc., cree un módulo de E/S de archivo, realice lectura y escritura de archivos, lectura y escritura de contenido de línea, segmentación de contenido de línea y funciones de E/S como creación, eliminación, cambio de nombre y verificación de directorios de archivos y nombres de archivos. muestra la aplicación del módulo de archivo IO https://blog.csdn.net/py8105/article/details/128959951         [2] Desarrollo C/C++, implementación de la interfaz de correo C++ basada en el protocolo SMTP

Desarrollo C/C++, implementación de la interfaz de correo C++ basada en el protocolo SMTP_vs envío y recepción de correo c++_py_free-IOT Intelligent Blog-CSDN blog realiza el envío de un informe de estadísticas de programación en tiempo real a los clientes por correo electrónico y extrae una interfaz de correo C++ independiente, que es conveniente para su uso posterior, y también se comparte para que los amigos interesados ​​lo usen como referencia. https://blog.csdn.net/py8105/article/details/103837469         [3] Desarrollo C/C++, basado en el código fuente MQTT estándar c puro de IBM, para lograr acceso en lenguaje C puro al caso de desarrollo de la plataforma IoT en la nube de Alibaba

Desarrollo C/C++, basado en el código fuente MQTT estándar c puro de IBM, para lograr acceso en lenguaje C puro a la plataforma IoT de Alibaba Cloud La biblioteca estándar MQTT se puede migrar a STM32, preste atención a mi publicación de blog de seguimiento. https://blog.csdn.net/py8105/article/details/128341479        [4] Desarrollo de C/C++, implementación de C++ de la interfaz del servicio de SMS en la nube de Alibaba

Desarrollo C/C ++, implementación C++ del servicio Alibaba Cloud SMS interface_c ++ Alibaba Cloud_py_free-IOT Smart Blog-CSDN Blog https://blog.csdn.net/py8105/article/details/80089001         [5] qt5.8 (c++) implementa la interfaz de nube de reconocimiento facial de Alibaba Cloud

qt5.8 (c++) implementa la interfaz de nube de reconocimiento facial de Alibaba Cloud_Aliyun interfaz de reconocimiento facial_py_free-IOT Intelligent Blog-CSDN Blog Interfaz API de reconocimiento facial de Alibaba Cloud para obtener información de resultados de reconocimiento de imágenes. https://blog.csdn.net/py8105/article/details/81452708         [6] Desarrollado en C/C++, utilizando la biblioteca http de acl_master para agregar la captura de datos de información de pronóstico del tiempo

        Desarrollo C/C++, usando la biblioteca http de acl_master para agregar datos de información de pronóstico del tiempo captura de información de datos agregados

https://blog.csdn.net/py8105/article/details/79510873 https://blog.csdn.net/py8105/article/details/79510873         [8] Desarrollo C/C++, servidor c++ de gsoap e implementación de cliente Java

Desarrollo C/C++, implementación del servidor c++ de gsoap y cliente Java         [9] Desarrollo C/C++, realización del empaquetado secundario de la biblioteca estática C++ para llamadas Java

Desarrollo de C/C++, implementar el empaquetado secundario de la biblioteca estática de C++ para el empaquetado del proyecto javacalling_c El uso de JNI puede usar fácilmente nuestro programa Java para llamar al programa C/C++ https://blog.csdn.net/py8105/article/details/69788513         [10] Desarrollo C/C++, basado en el código fuente de cectd para crear una base de datos etcd win/ Paquete c-SDK compilado estáticamente de Linux

Desarrollo C/C++, basado en el código fuente de cectd para crear una base de datos etcd paquete c-SDK compilado estáticamente para win/linux No muchos, y pocos admiten win Para realizar el paquete sdk que admite c/c++ para acceder a etcd multiplataforma y un trasplante rápido, se realizan ajustes adicionales sobre la base del paquete cetcd del código fuente para cumplir con el paquete etcd-c- que win/linux admite la compilación estática. En primer lugar, proporcione la URL de descarga del código fuente del paquete cetcd de código abierto: https://gitee.com/mirrors/cetcd. El paquete fuente ha implementado una biblioteca dinámica y estática compilable en Linux, pero necesita vincular dinámicamente a terceros. bibliotecas El proceso de transformación específico se proporciona a continuación: [1] Descargue el código fuente 1) Primero descargue la fuente cetcd de código abierto https://blog.csdn.net/py8105/article/details/106209588

        3.4 Sistema de registro (3 artículos)

        [1] Desarrollo C/C++, use la función de definición de macros y reemplazo de macros en lenguaje c para crear su propia salida de registro

        Desarrollo C/C++, use la función de definición de macros y reemplazo de macros en lenguaje C para crear su propia salida de registro en C++ para construir su propio sistema de registro pequeño

Desarrollo C/C++, cómo usar VA_LIST y el modo monomer en c++ para crear su propio sistema de registro pequeño Diseñe un CLogger de clase única, que tenga capacidades de subprocesos independientes y use una cola para recibir registros de cada subproceso y cada módulo funcional. La instancia de CLogger es responsable de agregar registros a la cola. Después de agregar información adicional, se detalla en el archivo. Para distinguir los eventos de registro, los tipos de registro se crean por enumeración; la operación de registro es un proceso a largo plazo y es imposible almacenarlos todos en un archivo de registro, así que especifique un directorio de archivos y guárdelo por día. https: //blog.csdn .net/py8105/article/details/126930886         [3] Desarrollo de C/C++, cómo c/c++ administra sus propios archivos de registro según el caso de espacio en disco

Desarrollo de C/C++, cómo c/c++ se da cuenta del caso de administrar sus propios archivos de registro de acuerdo con el espacio en disco Diseñar un módulo de función de administración de disco, de acuerdo con el directorio de disco especificado, como win especificado {C, D}, linux especificado {/ }, etc., para obtener el valor del espacio total en disco y el espacio restante, y luego determinar si eliminar el archivo de registro en función del espacio de almacenamiento. Mantenga el espacio necesario para el funcionamiento del sistema. Proporcione una API para eliminar registros, de acuerdo con el directorio y la extensión de archivo especificados, para eliminar archivos de registro antiguos. https://blog.csdn.net/py8105/article/details/126947879

        3.5 Servicios de ingeniería (9 artículos)

        [1] Desarrollo en C/C++, cómo crear, compilar e implementar servicios en segundo plano en Win/Linux con código C++ y administrar otros servicios

Desarrollo C/C++, cómo implementar código c++ para crear, compilar e implementar servicios en segundo plano en win/ linux y administrar otros servicios https://blog.csdn.net/py8105 /article/details/126642124         [2] Cómo implementar la carga dinámica de la biblioteca dinámica en c/c++ (incluido el código de muestra del proyecto completo)

Cómo realizar la carga dinámica de la biblioteca dinámica en c/c++ (incluido el código de muestra del proyecto completo)_c ++ loading dynamic library_py_free- IOT Intelligent Blog-CSDN Blog Cree una clase de registro RegisterM con un contenedor de mapas incorporado para cargar el módulo de biblioteca dinámica cargado y proporcione un índice de módulo uniforme e implemente funciones como la adquisición de instancias de clase, la eliminación y la adquisición de direcciones de funciones desde el módulo. En términos de implementación de biblioteca dinámica, se proporciona un MetaObject de metaclase virtual, y luego se crea una subclase en el archivo cpp de la biblioteca para heredar la clase para realizar sus funciones específicas, y la función API se proporciona directamente en el archivo cpp https : //blog.csdn.net /py8105/article/details/126995285         [3] Desarrollo C/C++, use svn para administrar la información de la versión del software

Desarrollo C/C++, use svn para administrar la información de la versión del software_$wcnow_py_free-IOT Intelligent Blog-CSDN Blog Desarrollo C/C++, use svn para administrar la información de la versión del software, genere automáticamente la información de la versión y llame a https://blog.csdn.net / py8105/article/details/69211071         [4] Desarrollo C/C++, crear restricciones de licencia de software basadas en disco o tarjeta de red (c++)

Desarrollo C/C++, cree restricciones de licencia de software basadas en disco o tarjeta de red (c++)_c++ license_py_free-IOT Intelligent Blog-CSDN Blog Desarrollo C/C++, cree restricciones de licencia de software basadas en disco o tarjeta de red (c++), cree software basado en disco o tarjeta de red El método de licencia adopta el cifrado simétrico, es decir, el cifrado y el descifrado usan la misma clave, y el algoritmo de cifrado es autodefinido, y el software tiene derechos de autor para que solo pueda ejecutarse en una máquina adecuada. https://blog.csdn.net/py8105/article/details/90229088         [5] Desarrollo C/C++, aprendizaje de biblioteca de fórmulas de cálculo

Desarrollo C/C++, biblioteca de fórmulas de cálculo learning_muparser library_py_free-IOT Intelligent Blog-CSDN Blog analiza rápida y fácilmente expresiones matemáticas y realiza cálculos a través de la biblioteca de fórmulas de cálculo (muparser) https://blog.csdn.net/py8105/article/details/ 68954214         【6】Desarrollo C/C++, algoritmo mejorado de coincidencia de patrones BF

Desarrollo de C/C++, algoritmo mejorado de coincidencia de patrones BF_Reforma bf algoritmo_py_free-IOT Intelligent Blog-CSDN Blog El algoritmo BF es un algoritmo de coincidencia de patrones con retroceso.Si la marca del búfer ha coincidido, reducir el retroceso puede mejorar la eficiencia del tiempo. sacrificado , y las compensaciones deben ser consideradas en aplicaciones         prácticas

Desarrollo C/C++, función hash y datos de estructura jerárquica_Estructura jerárquica del grupo de funciones hash algoritmo hash iterativo_py_free-IOT Intelligent Blog-CSDN Blog Desarrollo C/C++, función hash y datos de estructura jerárquica, utilizando hash La lista reorganiza la estructura de árbol para que sea más flat https://blog.csdn.net/py8105/article/details/68952202         [8] Desarrollo C/C++, programa de protección ocular para uso informático

Desarrollo C/C++, programa de protección ocular para el uso de la computadora_cómo escribir un programa de protección ocular_py_free-IOT Smart Blog-CSDN Blog utiliza un pequeño servicio ganador para bloquear periódicamente la pantalla o llamar al protector de pantalla para recordar el tiempo de uso de la computadora https://blog. csdn.net/py8105/article/details/68955538         [9] Una plataforma de monitoreo de IoT basada en Zero-Ice

Una plataforma de monitoreo de IoT basada en Zero-Ice_zero ice_py_free-IOT Intelligent Blog-CSDN Blog Una plataforma de monitoreo de IoT basada en Zero-Ice, que admite la implementación local y la implementación en la nube. https://blog.csdn.net/py8105/article/details/85060504

Supongo que te gusta

Origin blog.csdn.net/py8105/article/details/129927716
Recomendado
Clasificación